[英]Form submission results in a blank page in PHP
我正在尝试制作一个登录系统,我想创建一个条件语句来检查是否设置了全局变量$ _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');
}
?>
您的$_POST
始终具有submit-form
(且始终不为空),因此if
语句始终返回true
。 尝试仅检查(例如) $_POST['name']
和$_POST['email']
不为空。
与您的代码的问题是,检查,如果它的设置是不够的。因为它可以配置和空-实事求是你想要的是同时检查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";
}
}
这是因为isset($_POST['submit-form'])
返回true
即使您没有在“ 名称”和“ 电子邮件”字段中输入任何内容,当单击“ 提交”按钮提交表单时,其值也将是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.";
}
}
用户输入的验证和审查应该是列表中的下一个操作项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.