1

有很多线程在讨论如何实现简单的用户反馈/闪信系统向用户反馈信息,如“无效密码”、“设置已保存”、“新线程发布”等。使用起来相当简单

$_SESSION['message'] = "feedback message";

然后在下一个重定向页面上检索该会话密钥。但是,考虑这种情况:用户向 website.com/philosophy 提交了一个新线程,但他未能通过验证码,并且在处理表单后保存

 $_SESSION['message'] = "Invalid captcha";

并开始将用户重定向回他试图发帖的 website.com/philosophy。现在,假设服务器或他的连接在此重定向期间稍微滞后,同时用户在另一个浏览器选项卡上打开 website.com/philosophy。现在“无效验证码”将显示在那里,而它应该只显示在进行重定向的选项卡上。

只有当消息与原始重定向页面匹配时,如何才能可靠地显示消息?

4

1 回答 1

0

鉴于缺乏答案,我会说我能想到的最好的主意。

我将基于时间和基于页面的 Flash 消息,而不是简单地基于页面。

在这种情况下,如果用户在 website.com/philosophy 上创建一个新线程,并且他刷新了多个 website.com/philosophy 屏幕,他将在短时间内收到消息,而不是仅显示 1 个,甚至可以堆叠消息,因此如果他尝试从 website.com/philosophy 发布两次并且都失败了,他会收到两条消息,两个帖子尝试失败,而不是冒着让消息实际上被交换到不同帖子的风险(这如果第一条消息的重定向比第二条消息重定向花费的时间长,则可能发生)

于 2014-10-08T14:56:42.787 回答