Php 单击浏览器上的“上一步”按钮时丢失表单数据

Php 单击浏览器上的“上一步”按钮时丢失表单数据,php,forms,Php,Forms,当我在任何浏览器上单击“上一步”时,我会丢失在下拉列表和文本输入类型中输入到表单中的所有数据 这是服务器、浏览器还是编码问题 谢谢当按下“上一步”时,您需要为浏览器创建以保留表单数据。这很容易做到,在搜索链接中查看教程 这是一个浏览器问题。单击“后退”按钮时,浏览器的行为会有所不同——这种行为主要取决于用户隐私设置。此外,对于通过HTTPS连接查看的页面,无论HTTP连接的正常行为如何,大多数浏览器在点击后退按钮时都会自动重置表单。此外,许多严重依赖AJAX的HTML表单不能正确地(或一致地)恢

当我在任何浏览器上单击“上一步”时,我会丢失在下拉列表和文本输入类型中输入到表单中的所有数据

这是服务器、浏览器还是编码问题


谢谢

当按下“上一步”时,您需要为浏览器创建以保留表单数据。这很容易做到,在搜索链接中查看教程

这是一个浏览器问题。单击“后退”按钮时,浏览器的行为会有所不同——这种行为主要取决于用户隐私设置。此外,对于通过HTTPS连接查看的页面,无论HTTP连接的正常行为如何,大多数浏览器在点击后退按钮时都会自动重置表单。此外,许多严重依赖AJAX的HTML表单不能正确地(或一致地)恢复它们以前的状态

编辑--


既然您提到了使用PHP和MySQL,假设您也在使用会话。。。点击“后退”按钮时,浏览器不会预填充表单。PHP会话支持的页面不会缓存在浏览器中,点击“上一步”按钮返回上一页就像从一开始就再次打开该页面——大多数浏览器不会费心恢复表单值。

这适用于PHP和IE8

不仅必须将缓存设置为private,还必须删除4个缓存头,这只能通过PHP5.3实现

在PHP5.2中,如果使用Zend Framework的setHeader()方法,则只能将4个头设置为空值。由于某些原因,IE8上的4个标头值不足以设置为空值。以下是PHP5.3的代码:

header_remove("Expires"); 
header_remove("Cache-Control"); 
header_remove("Pragma"); 
header_remove("Last-Modified"); 

在ASP.NET中,将检索数据,因此我猜您没有使用ASP.NET?Windows Phone浏览器也会出现这种情况。试图找到解决方案。我发现Safari确实保留了数据,但IE和FF没有。如果使用的会话正确,因此,在浏览器停止允许用户单击“上一步”之前,无法真正解决此问题。是否可以将会话用于我们的优势?请尝试查看会话\u缓存\u限制器的可能值:并尝试为您的应用程序使用不太激进的设置。如果我是你,我会使用递归页面并通过代码恢复表单数据。。。设置private_no_expire就可以了