php - 当用户返回页面时,为什么我的表单数据消失了?

标签 php html forms

我们的网站上有一个使用一些非常简单的 PHP 生成的表单。不涉及javascript或任何东西,而且每次的形式都是一样的。

如果用户未完整填写表单,他们将进入一个显示“嘿,请返回并填写所有字段”的页面。当他们点击后退按钮时,他们将返回到表单。

在 Chrome 中,他们输入的表单数据仍然存在。但在 Firefox 中(至少在 Firefox 3.6 中),所有表单数据都消失了。

我们没有做任何特殊的事情来保留表单值。为什么 Chrome 保存它们而 Firefox 不保存?我们应该采取哪些“标准”措施来保护它们?

谢谢。

最佳答案

大多数浏览器在单击后退按钮时都会加载缓存的页面,但我猜 FF3.6 不会。不加载页面缓存版本的浏览器将对您的服务器执行新的 GET,当单击后退按钮时,将呈现一个空表单。

但我认为你实际上应该考虑重新考虑你的解决方案。因为正常的行为是发布到同一页面,然后如果用户输入的表单不正确,则显示带有预填充表单值的同一页面。如果用户正确输入了表单,最好的做法是实际重定向到同一页面(或与此相关的另一个页面)。这称为 PRG pattern .

关于php - 当用户返回页面时,为什么我的表单数据消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237923/

相关文章:

javascript - 从nodename和nodeindex获取html对象

javascript - 如何防止在 DOM 准备好之前提交表单?

html - 在标签和 div 周围使用 ${}

javascript - 如何在 Javascript 或 jQuery 中将标签包装在注释中

jquery - 验证失败时无法阻止表单提交

css - 跨浏览器样式 CSS 表单 ID

php - php三元运算符只有 'return'是真还是假?

php - 类似于带有 csv 文件的 WHERE 子句

php - 在 while 循环中合并数据并在 while 循环外调用它

PHP 复选框验证,if else 问题