繁体   English   中英

表单提交导致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语句始终返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM