我正在尝试创建一个登录系统,我想创建一个条件语句来检查是否设置了全局变量$ _POST ['submit-form']。
如果设置了全局变量$ _POST ['submit-form'],那么我想回显所提交表单的字段。效果很好。
当我要检查全局变量$ _POST ['submit-form']是否为空时,问题就来了,当我不提交任何表单时,我得到一个空白页。应该会发出类似“您未输入任何内容,请重试”的信息。
我不知道怎么了。
这是表格的代码。
fns.reduce(
(acc, fn) => acc.pipe( switchMap(fn) ) // switchMap to next fn result
, of(undefined) // initial value to pass to the first fn
)
.subscribe(result=>{
console.log(result);
})
..这是表单处理程序的代码。
<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>
答案 0 :(得分:3)
您的$_POST
始终具有submit-form
(并且它始终不为空),因此if
语句始终返回true
。尝试仅检查(例如)$_POST['name']
和$_POST['email']
是否为空。
答案 1 :(得分:2)
您的代码存在的问题是,检查设置是否足够..因为可能将其设置为而为空-实际上,您想要的是同时检查 strong> 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";
}
}
答案 2 :(得分:1)
这是因为isset($_POST['submit-form'])
会返回true
,即使您没有在 Name 和 Email 字段中输入任何内容,其值也将是按下 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.";
}
}
验证和仔细检查用户输入应是列表中的下一个操作项。