【问题标题】:How can I display the error message after submitting the form in php?在php中提交表单后如何显示错误消息?
【发布时间】:2016-08-17 04:28:06
【问题描述】:

我有一个网页,它在选择后显示内容,它包含一个带有提交按钮的表单。单击提交按钮后,我想在上一页中显示错误消息。代码如下:

    //form is sending email through action:"email.php". Code in php file:   
    mail ($to, $subject, $mess);

    //set the error session...(I left out the form validation code to simplify)
    $_SESSION["Login.Error"] = "Invalid credentials";

    //go back to previous page with all previous selections
    $previousPage = $_SERVER['HTTP_REFERER'];
    header("Location: $previousPage");

在表单中我添加了以下代码来显示错误信息:

<p class="form-text text-muted">Error Message: 
   <?php if(isset($_SESSION['Login.Error']))  {
   echo $_SESSION['Login.Error'];
   unset($_SESSION['Login.Error']); }
   ?> 
</p>

按下提交后,上一页加载正常,但没有显示错误消息,所以我猜 $_SESSION 有问题。或者这与 $_SERVER['HTTP_REFERER']; 有关系吗?有人可以帮忙吗?

【问题讨论】:

  • 你可以参考这个答案。这可能会帮助您使用 session_start(); *.com/questions/13912297/…
  • @Janani Kumar 是的,这就是问题所在。您能否将其作为答案,以便我可以适当地关闭它。非常感谢!
  • 你有没有通过 session_start() 开始会话;

标签: php forms error-handling


【解决方案1】:

你可以使用 session_start();

   session_start();

   mail ($to, $subject, $mess);

  //set the error session...(I left out the form validation code to simplify)
  $_SESSION["Login.Error"] = "Invalid credentials";

  //go back to previous page with all previous selections
  $previousPage = $_SERVER['HTTP_REFERER'];
  header("Location: $previousPage")

/* 引用页面 */

   <?php session_start();?>

  <p class="form-text text-muted">Error Message: 
         <?php if(isset($_SESSION['Login.Error']))  {
          echo $_SESSION['Login.Error'];
          unset($_SESSION['Login.Error']); }
  ?> 
  </p>

【讨论】:

    【解决方案2】:

    您需要按照以下代码开始会话。

    <?php 
        session_start();
        mail ($to, $subject, $mess);
    
        $_SESSION["Login.Error"] = "Invalid credentials";
        $previousPage = $_SERVER['HTTP_REFERER'];
        header("Location: $previousPage");
    ?>
    

    在表单中我添加了以下代码来显示错误信息:

    <p class="form-text text-muted">Error Message: 
       <?php 
       session_start();
       if(isset($_SESSION['Login.Error']))  {
           echo $_SESSION['Login.Error'];
           unset($_SESSION['Login.Error']);
       }
       ?> 
    </p>
    

    【讨论】: