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 即使您没有在 NameE- 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.";
   }
}

用户输入的验证和审查应该是您在列表中的下一个行动项目。