我认为这个问题经常发生在网络应用程序开发中。但我会尝试详细解释我的问题。
我想知道如何纠正这种行为,例如,当我有这样一段代码时:
<?
if (isset($_POST['name'])) {
... operation on database, like to insert $_POST['name'] in a table ...
echo "Operation Done";
die();
}
?>
<form action='page.php' method='post' name="myForm">
<input type="text" maxlength="50" name="name" class="input400" />
<input type="submit" name="Submit" />
</form>
当提交表单时,数据被插入到数据库中,并生成消息Operation Done。然后,如果我刷新页面,数据将再次插入到数据库中。
如何避免这个问题?任何建议将不胜感激:)
最佳答案
创建操作后不要显示响应;操作完成后重定向到另一个页面。如果有人刷新,他们会刷新您重定向到的 GET 请求页面。
// submit
// set success flash message (you are using a framework, right?)
header('Location: /path/to/record');
exit;
关于php - 避免因页面刷新而提交的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690541/