表单提交结果为PHP中的空白页面

问题描述 投票:0回答:3

我正在尝试创建一个登录系统,我想创建一个条件语句,检查是否设置了全局变量$ _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');

 }

?>
php isset
3个回答
2
投票

你的代码的问题是检查它是否设置是不够的..因为它可能被设置并且是空的 - 实际上你想要的是检查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";
    }
}

3
投票

你的$_POST总是有submit-form(并且它总是不为空),所以if语句总是返回true。尝试检查(例如)只有$_POST['name']$_POST['email']不是空的。


1
投票

那是因为isset($_POST['submit-form'])返回true,即使你没有在Name和E-mail字段中输入任何内容,当点击提交按钮提交表单时,它的值将是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.";
   }
}

用户输入的验证和审查应该是列表中的下一个操作项。

© www.soinside.com 2019 - 2024. All rights reserved.