我正在尝试创建一个登录系统,我想创建一个条件语句,检查是否设置了全局变量$ _POST ['submit-form']。
如果设置了全局变量$ _POST ['submit-form'],那么我想回显所提交表单的字段。这工作正常..
当我想检查全局变量$ _POST ['submit-form']是否为空时出现问题,当我提交表单时我得到一个空白页面。它应该回应出“你没有输入,请再试一次”之类的东西。
我不知道出了什么问题。
这是表单的代码。
<form action="test-form2.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="submit-form" value="submit">
</form>
..这是表单处理程序的代码。
<?php
if(isset($_POST['submit-form'])) {
$name = $_POST['name'];
$email = $_POST['email'];
if(($_POST['name'] != "") && ($_POST['email']!= "")) {
echo "This is your name: ".$name."<br>";
echo "This is your email: ".$email;
// header('refresh=3;url = ../leden/index.php');
}
} else {
echo "You have entered nothing or your username and/or password is incorrect, please try again.";
// header('refresh=3;url = /test-form1.php');
}
?>
你的代码的问题是检查它是否设置是不够的..因为它可能被设置并且是空的 - 实际上你想要的是检查isset
和它是否是empty
IE:
if (isset($_POST['submit-form'] && $_POST['submit-form'] != '' && $_POST['submit-form'] != null)
如果上述if
声明失败,您的$_POST['submit-form']
价值很可能不会被提交。
更新检查空白字段
if ($_POST['name'] != '' && $_POST['email'] != ''){
// Do stuff
}else{
if ($_POST['name'] == ''){
echo "name is empty";
}
if ($_POST['email'] == ''){
echo "email is empty";
}
}
你的$_POST
总是有submit-form
(并且它总是不为空),所以if
语句总是返回true
。尝试检查(例如)只有$_POST['name']
和$_POST['email']
不是空的。
那是因为isset($_POST['submit-form'])
返回true
,即使你没有在Name和E-mail字段中输入任何内容,当点击提交按钮提交表单时,它的值将是submit
字符串。这就是下面块的else
部分未被执行的原因。
if(isset($_POST['submit-form'])) {
} else {
echo "You have entered nothing or your username and/or password is incorrect, please try again.";
}
使用var_dump($_POST);
查看完整的数组结构。说完这些,你可以使用以下代码片段来达到预期的效果,
if(isset($_POST['submit-form'])) {
$name = $_POST['name'];
$email = $_POST['email'];
if(($_POST['name'] != "") && ($_POST['email']!= "")) {
echo "This is your name: ".$name."<br>";
echo "This is your email: ".$email;
// header('refresh=3;url = ../leden/index.php');
}else{
echo "You have entered nothing or your username and/or password is incorrect, please try again.";
}
}
用户输入的验证和审查应该是列表中的下一个操作项。