最近我发现我的帖子/重定向系统存在缺陷,我认为没有其他方法可以修复它。 考虑这个一步一步的场景,它必须在没有javascript / ajax的情况下工作:
因为我们正在刷新同一页面(使用HTML头标记或标题(Refresh:time,url = url),当用户按下F5时,他将获得"确认表单重新提交"消息。
我找不到另一种方法让我摆脱这种情况,要求重新提交表格。以下是一些替代方案以及它们为何也存在缺陷:
执行非刷新php header()重定向。表单重新提交已经消失,但现在我无法向用户显示"成功"消息,这看起来很奇怪。
在重定向回同一页面时附加?成功GET var。这是有效的,因为基本上我们重定向到一个新页面。但是如果用户点击F5,成功获得var将永远保留在那里。此外,如果用户决定再次调整,他将被重定向到具有相同get var的同一页面,使表格重新提交再次发生。
在会话变量上保存成功的消息,并将其加载到重定向的页面上,然后执行定时刷新重定向到原始页面。这样做的问题是,当用户一次调节多个标签时,会话闪存消息非常不可靠。来自不同页面的消息不知道它们属于哪个标签。不使用cookie的人也不会收到任何消息。
有没有优雅的方法,不依赖于javascript?
答案 0 :(得分:0)
我个人更喜欢在会话中存储Flash消息的想法。
$_SESSION[messages][$id] = array(
'type' => 'success',
'content' => 'Deleted.
)
id是你的主题ID。