表单提交会导致PHP中出现空白页

表单提交会导致PHP中出现空白页,php,isset,Php,Isset,我正在尝试创建一个登录系统,我想创建一个条件语句,检查是否设置了全局变量$u POST['submit-form'] 如果设置了全局变量$\u POST['submit-form'],那么我希望回显已提交表单的字段。这个很好用 当我想检查全局变量$_POST['submit-form']是否为空时,问题就出现了。当我提交表单时,没有任何内容,就会得到一个空白页面。它应该发出类似“您没有输入任何内容,请再试一次”的声音 我不知道怎么了 这是表单的代码 <form action="test

我正在尝试创建一个登录系统,我想创建一个条件语句,检查是否设置了全局变量$u POST['submit-form']

如果设置了全局变量$\u 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');

 }

?>


您的
$\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!很高兴我能帮上忙!愉快的编码!:-)