Php 对复选框使用POST方法会在“上产生问题”;“重新加载/刷新”;那一页

Php 对复选框使用POST方法会在“上产生问题”;“重新加载/刷新”;那一页,php,html,Php,Html,我使用9个复选框从用户处获取输入,并使用POST方法获取数据。问题是,当我尝试重新加载该页面时,浏览器会向我显示以下消息- “要显示此页面,Firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。” 使用2个选项,重新发送取消。请告诉我该怎么办。无法使用GET,因为它显示我的整个搜索查询 Quick and dirty:将复选框的所有值存储在$\u Session[]数组中,并首先进行检查 if($_SESSION["CheckBox1"] === "on") { //

我使用9个复选框从用户处获取输入,并使用POST方法获取数据。问题是,当我尝试重新加载该页面时,浏览器会向我显示以下消息-

“要显示此页面,Firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。”
使用2个选项,重新发送取消。请告诉我该怎么办。无法使用GET,因为它显示我的整个搜索查询

Quick and dirty:将复选框的所有值存储在$\u Session[]数组中,并首先进行检查

if($_SESSION["CheckBox1"] === "on")
{
    // Do Stuff
}
else
{
    // Get $_POST[] Data and do stuff
    $_SESSION["CheckBox1"] = $_POST["CheckBox1"];
    ...
}

当用户提交表单时,您首先检查$\u会话是否有数据,否则将数据放入其中,然后继续正常工作。如果发生重新加载,则使用$\u会话值,而不是现在为空的$\u POST数组。

如果要执行某些搜索以获取信息,我建议只使用getPOST-REDIRECT-GET也将显示您的搜索查询

如果您使用post,浏览器将确认您确实想再次发布帖子。
我个人认为,使用GET获取数据,使用POST操作数据。

发布数据后,重定向到当前页面。这将取消重新发送/取消问题

如果您的网站基于用户配置文件,则可以查看用户数据并返回所选复选框


您可以通过javascript[在复选框单击时]或后端[在发布时]设置cookie值,这样您可以存储选中的复选框并在重新加载时返回它。

这仅在您尝试在POST请求后刷新页面时发生

Bowser询问您应该做什么:重新发送帖子数据或只是刷新页面而不发布(仅发送获取)


在铬上也有同样的行为。Opera没有询问,只是默认情况下重新发送以前发送的POST数据。

将方法请求类型从POST更改为GET,以进入我的搜索表单,并去掉确认框。

我在某个地方读到了POST-REDIRECT-GET的用法,但我不确定如何实际实现它。我的代码复选框:
是否在其他浏览器中进行了测试?