我在PHP中的服务器端验证是在页面加载时进行的


My Server Side Validation in PHP Comes when the Page is loaded

加载页面时,我的服务器端验证首先出现,我试过了if(!$_REQUEST){header(.....);}在控制器中我的方法开始时,但它似乎不起作用,有人知道合适的索尔吗?

您是使用GET还是POST提交表单数据?

如果您使用的是POST,您可以检查请求方法:

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Validate form data
}
else {
    // Display form
}

如果使用GET,则应检查是否设置了所需的任何数据。例如:

if(isset($_GET["arg1"]) || isset($_GET["arg2"]) || isset($_GET["arg3"]) || ...) {
    // Validate data
}
else {
    // Display form
}

我这样做是为了解决问题

public function funName(){

// to avoid validation when the page loads
if($_SERVER['REQUEST_METHOD'] != 'POST') {
$this->load->view('user/index');
}

     ... //rest of content

}

您也可以有一个<input type="submit" name="submit" value="Submit" />,也可以检查if (isset($_POST['submit'])) { ...(我假设您使用的是Post;大多数表单应该是Post,但它也可以与Get一起使用)。您可以在同一页面上轻松地拥有多个表单,只需检查是否存在不同的提交按钮。我发现这对于检查表格是否提交有点优雅;之后,您验证字段(例如,它们是否已填写等)。