您好我一直试图取消设置帖子,基本上我遇到的问题是数据被INSERTED进入数据库。 php函数发出消息,说明帖子成功。这一切都很好但是当我刷新页面时,帖子继续将数据插入到我的数据库中。基本上我怎么能阻止它发布。这是代码:
if(isset($_POST['submit_message'])) {
$sql = "INSERT INTO messages (user_id, timestamp, times, message)
VALUES ('".$_SESSION['user_id']."', '".date("Y.m.d")."', '".date("H:i:s")."', '".$_POST['message-content']."')";
$result = mysql_query($sql);
unset($_POST['submit_message']);
unset($GLOBALS['_POST']['submit_message']);
if(!$result) {
$msg = 'There was an error while trying add your message.';
unset($_POST['submit_message']);
} else {
$msg = 'Your message was successfully added.';
unset($_POST['submit_message']);
}
}
正如您从代码中看到的那样,我尝试使用PHP输入一些未设置的帖子,但这似乎不起作用。我怎么能取消我的帖子?
答案 0 :(得分:0)
每当刷新页面时,都会重新提交表单数据。因此,$_POST
新填充了表单数据。请记住,HTTP是无状态的。一旦页面执行并且请求终止,该请求的POST数据就会消失。
如果您不希望页面刷新重新提交表单,则需要使用POST/REDIRECT/GET模式。
为了使其正常工作,我们需要使用303重定向。这意味着我们需要使用重定向发送303标头。 303重定向将导致浏览器重新加载页面而不重新提交初始HTTP POST请求。这包括用户使用后退或刷新按钮的时间。