在同一页面中显示表单确认消息:最佳实践

问题描述:

我在很多网站和Web应用程序中都看到过这种行为,但我无法找到“干净和标准”的方式来重现它:用户填写表单,提交它,然后,在验证成功后,表单将重新加载一条消息,上面写着“该项目已保存”。到目前为止没有问题,我不明白的是,如果特定页面被重新加载,他们如何继续显示确认消息,但是当用户转到另一个页面然后返回到原始页面(包含表单的消息)时,消息现在不存在了。似乎没有获取或发布的数据,所以我假设会使用会话变量或cookie,但他们如何知道何时保留以及何时取消设置?或者,也许我错了,还有其他方法......请帮助我!在同一页面中显示表单确认消息:最佳实践

我的猜测是他们会使用一个会话变量,在页面被访问的时候自行解除。所以如果他们试图再次访问它们,他们只是重定向。

+0

这并不能解释当您重新加载页面时仍然显示消息的方式。如果您未设置会话变量,则不应再显示该消息。 – Kupido 2010-09-28 09:06:05

+0

也许它使用来自用户发送的HTTP请求标头中的HTTP Referrer? – 2010-09-28 09:14:42

+0

据我所知,HTTP_REFERER变量不完全可靠,我错了吗?你能提供一些代码吗? – Kupido 2010-09-28 09:37:10

也许与窗体的页面没有任何“未设置”会话变量,但其他人呢?

+0

这将如何处理不同页面中的多个表单(甚至是在同一页面中)? – Kupido 2010-09-28 09:40:24

+0

对于每个表单验证,会话变量不必是相同的。例如,您可以使用$ _SESSION ['registrationFormValidation']作为注册表单,$ _SESSION ['contactFormValidation']作为联系表单。然后,您可以在联系页面上取消第一个,反之亦然。 – Shikiryu 2010-09-28 09:46:50

+0

是的,这可能是一个解决方案,但它似乎不那么“干净”... :) – Kupido 2010-09-28 10:03:41