我创建了一个非常简单的登录页面,我在提交表单后验证PHP上的用户名和密码。
验证的第一步是检查用户名和密码是否为空,如果为空,我将用户发送回登录页面:
$e = $_POST['email'];
$p = $_POST['password'];
if($e == '' || $p == '' || is_null($e) || is_null($p)){
header('Location: login.php?e=missing');
}
事实证明,检查用户名和密码是否为空的if
语句只有在我添加else
语句时才有效:
$e = $_POST['email'];
$p = $_POST['password'];
if($e == '' || $p == '' || is_null($e) || is_null($p)){
header('Location: login.php?e=missing');
}else{
//more validation
}
老实说,我的代码有效,我添加了else
并解决了问题,但为什么???
感谢。
答案 0 :(得分:4)
$e = $_POST['email'];
$p = $_POST['password'];
if(trim($e) == '' || trim($p) == ''){
header('Location: login.php?e=missing');
exit(); // add this else it wont leave the page!
}else{
//more validation
}
答案 1 :(得分:1)
if($e == '' || $p == ''){
header('Location: login.php?e=missing');
}
您需要在标题行后添加exit()
;否则,处理将继续正常进行,并运行所有其余代码。
答案 2 :(得分:1)
您需要使用empty
检查变量是否已设置,以及是否为空。
$e = $_POST['email'];
$p = $_POST['password'];
if( empty($e) || empty($p) ) {
header('Location: login.php?e=missing');
exit;
}
else {
//more validation
}
答案 3 :(得分:0)
$e = $_POST['email'];
$p = $_POST['password'];
if(!empty($e) && !empty($p))
{
header('Location: login.php?e=missing');
exit();
}
else
{
//more validation
}
答案 4 :(得分:0)
if($e == '' || $p == ''){
header('Location: login.php?e=missing');
}
然后使用:
if(!isset($e) || !isset($p)){
header('Location: login.php?e=missing');
exit();
}
由于空格的缘故,您可以使用trim()函数删除空格并使用exit();标题后强制*