仅在首次页面加载时显示消息

6

我希望在添加评论后仅在第一次页面加载时显示感谢消息...评论表单使用外部php文件进行处理,然后重定向回页面。我希望仅在重定向后显示一些消息...使用php最好的方法是什么?

5个回答

5
假设您可以访问处理文件的外部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
@oezi - 你说得对,我已经相应地修改了答案。 - simnom

3
将消息保存到会话中。显示消息,然后仅取消会话变量。

1
在处理评论的页面上:
if($success)
{
    $_SESSION['userMsg'] = "<p>Your comment has been added. Thank you.</p>";
}

在任何/所有页面中(但主要是您要重定向的页面):
if($_SESSION['userMsg'] != '')
{
    print $_SESSION['userMsg'];
    unset($_SESSION['userMsg'];
}

假设您正在使用会话并且先前已调用session_start()函数


0

当您通过 $_GET 数组重定向发送变量时,请发送类似以下内容的变量:

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

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


0

你可能想要应用PRG模式。 基本上,你发布评论后,服务器会回复客户端执行重定向到你的页面,并在查询字符串中添加额外信息,就像Vadim所说的那样。

“优雅”,无状态和功能性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接