PHP表单验证阻止空表单提交

时间:2014-05-29 09:01:21

标签: php validation

我创建了一个带登录会话功能的简单表单,我正在使用mysqli_connect_errno()并添加了一个条件

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

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

     <label for="username">Name </label><br>
     <input type="text" name="username"class="text">
     <span class="red"><?php echo $Err;?></span>

但错误消息未显示在空提交

3 个答案:

答案 0 :(得分:0)

您已经提到header('Location:'.$home_url);那么您怎么能看到错误。在标题位置

中传递错误消息

将您的代码替换为

$Err = "Invalid value";
header('Location: ' . $home_url.'?err='.$Err);

并按此打印错误

if(isset($_GET['err']))
{          
    echo $_GET['err'];         
}

答案 1 :(得分:0)

header('location:' .$home_url?flag=y);

上面的行是用php页面写的

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

以上代码将在html页面中编写

答案 2 :(得分:-1)

如果你这样写

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

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

您的页面将从header()函数和下面的代码重定向,将永远不会执行。这是晃来晃去的代码。所以,而不是你需要写如下

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

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

       }