取消设置帖子PHP ...不想取消设置

时间:2014-02-24 02:22:57

标签: php post unset

您好我一直试图取消设置帖子,基本上我遇到的问题是数据被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输入一些未设置的帖子,但这似乎不起作用。我怎么能取消我的帖子?

1 个答案:

答案 0 :(得分:0)

每当刷新页面时,都会重新提交表单数据。因此,$_POST新填充了表单数据。请记住,HTTP是无状态的。一旦页面执行并且请求终止,该请求的POST数据就会消失。

如果您不希望页面刷新重新提交表单,则需要使用POST/REDIRECT/GET模式。

  

为了使其正常工作,我们需要使用303重定向。这意味着我们需要使用重定向发送303标头。 303重定向将导致浏览器重新加载页面而不重新提交初始HTTP POST请求。这包括用户使用后退或刷新按钮的时间。