刷新时,停止$ _POST从具有相同的值

Joe*_*ssi 1 php post

更改投票值后,表单将更改POST,然后刷新页面.这在加载时在页面顶部调用:

  if (isset($_POST['q'.$question_id]))
    {
    $user->updateQuestionVotes($question_id, $_POST['q'.$question_id]);
    }
Run Code Online (Sandbox Code Playgroud)

为什么每次我第一次刷新后都会更新?我需要以某种方式取消它吗?

ani*_*son 5

因为这是每个浏览器的自然行为.您需要将用户重定向到同一页面,以便POST值不再位于标题中.

你试过这个吗?

header("Location: /back/to/same/page");
Run Code Online (Sandbox Code Playgroud)

这会将用户重定向到他们需要重新登陆的任何页面,删除他们发送的任何POST参数.每次刷新页面时,它都使用与之前相同的标题,这意味着POST内容仍然存在.

  • 和http://en.wikipedia.org/wiki/Post/Redirect/Get作为重要补充 (2认同)