表单提交会导致PHP中出现空白页
我正在尝试创建一个登录系统,我想创建一个条件语句,检查是否设置了全局变量$u POST['submit-form'] 如果设置了全局变量$\u POST['submit-form'],那么我希望回显已提交表单的字段。这个很好用 当我想检查全局变量$_POST['submit-form']是否为空时,问题就出现了。当我提交表单时,没有任何内容,就会得到一个空白页面。它应该发出类似“您没有输入任何内容,请再试一次”的声音 我不知道怎么了 这是表单的代码表单提交会导致PHP中出现空白页,php,isset,Php,Isset,我正在尝试创建一个登录系统,我想创建一个条件语句,检查是否设置了全局变量$u POST['submit-form'] 如果设置了全局变量$\u POST['submit-form'],那么我希望回显已提交表单的字段。这个很好用 当我想检查全局变量$_POST['submit-form']是否为空时,问题就出现了。当我提交表单时,没有任何内容,就会得到一个空白页面。它应该发出类似“您没有输入任何内容,请再试一次”的声音 我不知道怎么了 这是表单的代码 <form action="test
<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');
}
?>
您的$\u POST
始终有提交表单(并且它始终不是空的),因此如果语句始终返回true
。请尝试(例如)仅检查$\u POST['name']
和$\u POST['email']
不是空的。您的代码的问题是,检查它是否已设置是不够的。因为它可能已设置且为空--实际上,您想要检查的是这两个都设置了以及它是否为空即:
if (isset($_POST['submit-form'] && $_POST['submit-form'] != '' && $_POST['submit-form'] != null)
如果上述If
语句失败您的$\u 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";
}
}
这是因为isset($\u POST['submit-form'])
返回true
即使您没有在Name和E-mail字段中输入任何内容,当点击submit按钮提交表单时,它的值也将是submit
字符串。这就是否则下面的部分块不会被执行的原因
if(isset($_POST['submit-form'])) {
} else {
echo "You have entered nothing or your username and/or password is incorrect, please try again.";
}
使用var\u dump($\u 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.";
}
}
if(isset($\u POST['submit-form'])){
$name=$_POST['name'];
$email=$_POST['email'];
如果($_POST['name']!=“”)和($_POST['email']!=“”){
echo“这是你的名字:“.$name.”
“;
echo“这是你的电子邮件:”.$email;
//标题('refresh=3;url=../leden/index.php');
}否则{
echo“您没有输入任何内容,或者您的用户名和/或密码不正确,请重试。”;
}
}
验证和检查用户输入应该是列表中的下一个操作项。哦,是的。我明白了。谢谢你,我现在就试试。谢谢你的解释,我会试试看,看看我是否能让它工作。嗨,扎克,它不工作,表单仍在提交中,尽管有空字段。至少现在我没有得到空白页,但它不是检查表单提交时表单字段是否为空。是的,这起作用了,我每次都在检查“提交”按钮。这是错误的。我必须检查特定表单字段的值。谢谢,你太棒了!!是的,你做到了!它现在起作用了。所以我必须检查表单字段是否已设置,而不是“提交”按钮?我想我我现在开始明白了。非常感谢@Rajdeep!@jhonatanapraprect!很高兴我能帮上忙!愉快的编码!:-)