不刷新php页面

时间:2013-05-27 06:32:29

标签: php mysql page-refresh

在我的页面上,在用户提交代码后,该脚本在数据库中创建一条新记录。如果在他提交了用户点击刷新的代码之后,它将在数据库中生成重复记录。如果他点击刷新10次,它将使用相同的数据制作10条记录......

有什么方法可以让页面第二次不刷新?或者限制页面可以获得的刷新次数?可以采用哪些解决方案来避免这种情况?

提前谢谢。

5 个答案:

答案 0 :(得分:0)

在将记录添加到数据表之前,使用select query检查数据表中是否存在数据并将页面重定向到新页面,比如说谢谢或确认插入。

Select id from TABLE where data='".$_POST["data"]."';
....
....
if(empty($rs["id"])){
// insert the data in table;
}else{
// do edit or skip to redirect
}

和Rediret

header("location:thankyou.php");
exit();

答案 1 :(得分:0)

听起来像生成表单的PHP脚本与处理表单的脚本相同。您可能需要考虑设置单独的PHP脚本来处理表单。例如:

<form action="action_handler.php" method="post">

然后,在action_handler.php的末尾,您将重定向到原始页面,如下所示:

header('Location: original_page.php');

答案 2 :(得分:0)

将记录保存在数据库中后,使用header()并重定向到同一页面。

检查此question的答案,也许您可​​以使用相同的代码。

答案 3 :(得分:0)

将其插入数据库或尝试unset($_POST["data"])

后,简单的header('location:.')

答案 4 :(得分:0)

在处理POST数据时,您应该始终使用POST / REDIRECT / GET设置(Wikipedia。这样,当用户刷新目标页面时,除了刷新之外没有任何其他事情发生。

重定向方法的最佳方法是使用状态代码303(HTTP Status Codes),它告诉浏览器POST数据已被接收,处理并且用户应该转到新页面'响应'。当用户点击“返回”时,他或她应该收到一条消息,指出该页面不再可用或有效(这会禁用通过该路由进行重新播放)。

您可以使用此示例重定向到另一个页面(相当通用的示例,但我有可以使用的基线代码):

header("HTTP/1.1 303 See Other");
header("Location: http://www.yourdomain.com/desitnation.php");