避免在页面刷新时重新发送数据

时间:2015-04-29 07:01:18

标签: php http post-redirect-get

我正在编写简单的登录系统&我想做“GET”自我重定向以避免在刷新时重新发送数据(POST-Redirect-GET模式)。据我所知,有几种方法可以做到这一点:

  1. header('Location:main.php');
  2. echo '<body onload="window.location = \''.$HTTP_SERVER_VARS['PHP_SELF'].'\'">body</body>';

  3. echo '<meta http-equiv="refresh" content="0;url='.$HTTP_SERVER_VARS['PHP_SELF'].'">';

  4. 有我的问题:

    1. 哪种方法最正确?
    2. 为什么3.方法不起作用?它确实重定向但之后 当我点击“刷新”按钮时,我仍然得到“你想要的 重发数据“消息?

1 个答案:

答案 0 :(得分:0)

“最正确”是1.,因为这是HTTP,只是确保您返回临时重定向代码,否则具有代理的用户最终将无法使用您的系统。其他两个依靠浏览器实现(技术上也是如此)并且不能保证工作。

但是你应该考虑使用AJAX而不要担心上个世纪的问题。