【问题标题】:Display message only for the first page load仅在第一页加载时显示消息
【发布时间】:2011-03-30 11:25:54
【问题描述】:

我想在添加评论后显示感谢信息,仅用于第一个页面加载...评论表单使用外部 php 文件处理,然后重定向回页面。我只想在重定向后显示一些消息...使用 php 执行此操作的最佳方法是什么?

【问题讨论】:

    标签: php


    【解决方案1】:

    您可能想要应用 PRG 模式。 基本上,您发布评论,服务器回复客户端以执行重定向到您的页面,并在查询字符串中提供附加信息,正如 Vadim 所说。

    “优雅”、无会话且实用。

    【讨论】:

      【解决方案2】:

      假设您有权访问处理该文件的外部 php 文件,您可以对处理文件执行类似于以下操作:

      $_SESSION['flashMessage'] = 'Thank you for posting.';
      header("Location: your-page.php');
      

      然后将以下内容添加到重定向页面:

      if ($_SESSION['flashMessage']) {
          echo $_SESSION['flashMessage'];
          $_SESSION['flashMessage'] = NULL;
      }
      

      【讨论】:

      • 最后一行不应该是 '$_SESSION['flashMessage'] = NULL;' ?
      • @oezi - 你确实是正确的,适当地修改了答案。
      【解决方案3】:

      在处理评论的页面上:

      if($success)
      {
          $_SESSION['userMsg'] = "<p>Your comment has been added. Thank you.</p>";
      }
      

      在任何/所有页面中(但主要是您要重定向到的页面):

      if($_SESSION['userMsg'] != '')
      {
          print $_SESSION['userMsg'];
          unset($_SESSION['userMsg'];
      }
      

      这是假设您正在使用 Sessions,因此之前调用了 session_start() 函数

      【讨论】:

        【解决方案4】:

        当您通过 $_GET 数组重定向发送时,变量如下所示:

        header("LOCATION: index.php?msg=1" );
        

        在索引上检查 $_GET['msg']==1 然后显示您的消息

        【讨论】:

          【解决方案5】:

          将消息保存到会话中。显示它,然后取消设置会话变量。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-20
            相关资源
            最近更新 更多