有很多线程在谈论如何实现简单的用户反馈/ flash消息系统来向用户报告信息,例如"无效密码","设置保存",&# 34;发布了新帖子"等等。使用
非常简单$_SESSION['message'] = "feedback message";
然后在下一个重定向页面上检索该会话密钥。但是,请考虑以下情况:用户向website.com/philosophy提交新线程,但他没有使用验证码,并且在处理表单后保存
$_SESSION['message'] = "Invalid captcha";
并开始将用户重定向回他试图发布的website.com/philosophy。现在,假设服务器或他的连接在此重定向期间略有滞后,用户同时在另一个浏览器TAB上打开website.com/philosophy。现在"无效的验证码"将显示在那里,它应该只显示在工作重定向的选项卡上。
如果邮件与原始重定向页面匹配,您如何才能可靠地显示邮件?
答案 0 :(得分:0)
由于缺乏答案,我会说出最好的想法。
我将基于时间和基于页面制作flash消息,而不是简单地基于页面。
在这种情况下,如果用户在website.com/philosophy上创建了一个新主题,并且他刷新了多个website.com/philosophy屏幕,他将收到所有这些消息而不仅仅是1的消息短暂的有效期,甚至可以堆叠消息,所以如果他试图从website.com/philosophy发布两次并且都失败了,他会得到两条消息,即两个帖子尝试失败,而不是冒险让消息实际上被转换为不同的帖子(如果第一个消息的重定向花费的时间比第二个消息重定向要长,则会发生这种情况)