0

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

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

先感谢您。

4

5 回答 5

0

在处理 POST 数据时,您应该始终使用 POST/REDIRECT/GET 设置(维基百科。这样,当用户刷新目标页面时,除了刷新之外什么都没有发生。

重定向方法的最佳方式是使用状态代码 303(HTTP 状态代码),它告诉浏览器已接收、处理 POST 数据,并且用户应该转到新页面以获取“响应”。当用户点击“返回”时,他或她应该会收到一条消息,表明该页面不再可用或不再有效(这会禁用通过该路由重新发布)。

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

header("HTTP/1.1 303 See Other");
header("Location: http://www.yourdomain.com/desitnation.php");
于 2013-05-27T06:47:21.473 回答
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
}

和重定向

header("location:thankyou.php");
exit();
于 2013-05-27T06:34:29.817 回答
0

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

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

然后,在结束时action_handler.php,您将重定向到原始页面,如下所示:

header('Location: original_page.php');
于 2013-05-27T06:39:20.047 回答
0

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

检查这个问题的答案,也许你可以使用相同的代码。

于 2013-05-27T06:40:01.603 回答
0

简单的一种是unset($_POST["data"]) 将其插入数据库或尝试header('location:.')

于 2013-05-27T06:41:38.373 回答