【问题标题】:How do I display a success message after redirecting the user back to my home page?将用户重定向回我的主页后如何显示成功消息?
【发布时间】:2018-06-17 19:35:15
【问题描述】:

我有一个使用 AJAX 和 PHP 进行验证的注册表单,如果用户没有正确填写表单,我目前可以在注册页面上显示错误消息。当用户注册成功后,他或她将通过以下方式回到我网站的主页:

echo
    "<script type=\"text/javascript\">
        window.location.href='../index.php';                     
    </script>";
exit();

我想知道一旦发生这种情况,如何在我的网站顶部显示一条成功消息,最好是一条消息,如果用户在显示该消息后刷新主页,该消息就会消失。

【问题讨论】:

  • 这称为flash message。我用谷歌搜索发现this library。

标签: javascript php jquery ajax


【解决方案1】:

使用会话,这样刷新页面时它就不会再次显示。

服务器端:

$_SESSION['success'] = 'Registered!';
echo
    "<script type=\"text/javascript\">
        window.location.href='../index.php';                     
    </script>";
exit();

主页:

if (isset($_SESSION['success']) && ! empty($_SESSION['success'])) {
    echo htmlentities($_SESSION['success']);
    unset($_SESSION['success']);
}

确保在尝试操作之前使用 session_start(); 初始化会话

【讨论】:

    【解决方案2】:

    您可以通过多种方式来实现,但最简单的一种是将参数传递给 index.php 文件

    index.php?status=1
    

    然后在索引文件中,您将检查该参数是否存在以及它具有什么值(例如 0 - 错误,1 - 成功)

    if(isset($_GET['status'])) {
      if($_GET['status'] == 1) {
        echo "User was registered successfully!";
      }
    }
    

    或者您可以定义(在验证用户数据和登录的脚本上)带有成功消息的会话变量并将其显示在索引页面上

       if(isset($_SESSION['success'])) {
         echo $_SESSION['success'];   
       }
    

    提醒:不要忘记在两个页面(索引页面和验证脚本中)调用session_start() 函数

    【讨论】:

      【解决方案3】:

      这是特定于您的应用程序的,但我会在成功登录后在 PHP 会话中设置一条消息,然后在 index.php 的页面加载时检查该会话

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-26
        • 2016-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-06
        相关资源
        最近更新 更多