防止提交空表单的PHP表单验证

防止提交空表单的PHP表单验证,php,validation,Php,Validation,我已经创建了一个具有登录会话功能的简单表单,我正在使用mysqli\u connect\u errno并添加了一个条件 if ($_POST['username']=="") { $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/form.html'; header('Location: ' . $home_url); $Err = "

我已经创建了一个具有登录会话功能的简单表单,我正在使用mysqli\u connect\u errno并添加了一个条件

     if ($_POST['username']=="") {

     $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) .    '/form.html';
     header('Location: ' . $home_url);
     $Err = "Invalid value";
       }

但是如果以这种方式写入,则错误消息不会显示在空提交上

if ($_POST['username']=="") {

     $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) .    '/form.html';
     header('Location: ' . $home_url);
     $Err = "Invalid value";
       }
会发生什么情况?您的页面将从标题函数重定向,下面的代码将永远不会执行。这是一个悬而未决的代码。因此,你需要写以下内容

if ($_POST['username']=="") {

     $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) .    '/form.html';
$Err = "Invalid value";     
header('Location: ' . $home_url);

       }
您提到了标题“位置:”。$home\u url;那你怎么能看出错误呢。在标头位置传递错误消息

将代码替换为

$Err = "Invalid value";
header('Location: ' . $home_url.'?err='.$Err);
然后像这样打印错误

if(isset($_GET['err']))
{          
    echo $_GET['err'];         
}
上面这一行是用php页面编写的

<?php if(isset($_REQUEST['flag']) && $_REQUEST['flag'] == 'y'){ echo "valid";} else{ echo "Invalid"; } ?>

上面的代码是用html页面编写的

,因为在您的条件下,您将重定向到某个页面。下一行永远不会被执行。如果我以前写它,它是不可见的redirecting@Ezhil您看到他正在重定向到html页面了吗。PHP代码将无法工作。OP必须将其更改为.php文件。我想这就是问题所在。我会检查它。使用Javascript现在应该可以了。我是PHP的初学者。如果我在重定向之前编写它,它是不可见的
header('location:' .$home_url?flag=y);
<?php if(isset($_REQUEST['flag']) && $_REQUEST['flag'] == 'y'){ echo "valid";} else{ echo "Invalid"; } ?>