2014-10-07 21 views
1

有许多线程讨论如何实现简单的用户反馈/ Flash消息系统来向用户报告信息,如“无效密码”,“保存设置”,“新线程发布“ 等等。这是相当简单的使用创建一个可靠的Flash /反馈消息系统

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

然后检索下一个重定向页面上的会话密钥。然而,考虑以下情况:用户提交一个新的线程来website.com/philosophy,但他失败了验证码和处理后的形式可以节省

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

,并开始将用户重定向回website.com /哲学,他试图从中发布。现在,想象在重定向期间服务器或他的连接有点滞后,同时用户在另一个浏览器TAB上打开website.com/philosophy。现在,“无效验证码”将显示在那里,只应显示在重定向的选项卡上。

如何才能可靠地显示消息,只有当它从原来的重定向页面匹配?

+0

完全停留在此处并感谢帮助。到目前为止我所见过的所有Flash消息教程都没有解决这个问题 – Rob 2014-10-08 11:03:18

+0

主要框架(Symfony,Cake,Slim等)如何在他们的Flash消息系统中处理这个问题?或者,他们呢? – alexw 2015-03-04 00:30:33

回答

0

鉴于缺乏答案,我会说我可以想出最好的想法。

我会使闪光消息都基于时间和基于页面,而不是简单的基于页面。

在这种情况下,如果用户在website.com/philosophy创建一个新的主题,并且他刷新了多个website.com/philosophy屏幕,他将得到的消息对所有人都说,而不仅仅是1一个短的有效期,甚至可以堆叠消息,所以如果他试图从website.com/philosophy发布两次并且都失败了,他会得到两封邮件,说明两次邮寄尝试失败,而不是冒着为邮件实际交换邮件的风险不同的帖子(如果第一条消息的重定向比第二条消息重定向花费时间更长)