PHP 中的表单提交结果为空白页
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
语句总是 returns true
。尝试检查(例如)仅 $_POST['name']
和 $_POST['email']
不为空。
你的代码的问题是检查它是否设置是不够的..因为它可能被设置 and 是空的 - 实际上你想要的是检查 两者 isset
是否empty
IE:
if (isset($_POST['submit-form'] && $_POST['submit-form'] != '' && $_POST['submit-form'] != null)
如果上述 if
语句 失败 您的 value for $_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'])
returns true
即使您没有在 Name 和 E- mail 字段,当点击 submit 按钮提交表单时,它的值将是 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.";
}
}
用户输入的验证和审查应该是您在列表中的下一个行动项目。
我正在尝试创建一个登录系统,我想创建一个条件语句来检查是否设置了全局变量 $_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
语句总是 returns true
。尝试检查(例如)仅 $_POST['name']
和 $_POST['email']
不为空。
你的代码的问题是检查它是否设置是不够的..因为它可能被设置 and 是空的 - 实际上你想要的是检查 两者 isset
是否empty
IE:
if (isset($_POST['submit-form'] && $_POST['submit-form'] != '' && $_POST['submit-form'] != null)
如果上述 if
语句 失败 您的 value for $_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'])
returns true
即使您没有在 Name 和 E- mail 字段,当点击 submit 按钮提交表单时,它的值将是 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.";
}
}
用户输入的验证和审查应该是您在列表中的下一个行动项目。