持续刷新页面的问题

Trouble with continous refreshing page

当我尝试运行这个脚本时:

<form class="form-inline" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
    <button type="submit" name="buttonSubmit" class="btn btn-default">Submit</button>
</form>
<?php
  if (isset($_POST['buttonSubmit'])) {
    unset($_POST['buttonSubmit']);
    echo "<script>alert(".isset($_POST['buttonSubmit']).")</script>";
    echo "<script>location.reload(true);</script>";
  }
?>

因此,页面在无限循环中刷新。

这是什么原因?

如何只刷新我的网站一次?

当您使用 location.reload(true); 时,您以编程方式执行与单击浏览器 "Refresh/Reload" 按钮相同的操作。

这将一遍又一遍地生成另一个 "submit",因此始终使语句 isset($_POST['buttonSubmit']) 为真。

这里有几个解决方案:

注意,如果'page-to-load'是相同的已经加载,你可以使用location.href,例如

location.replace(location.href);

另一种方法是,不依赖客户端脚本,而是在服务器端提交表单时执行 response redirect

  • How to make a redirect in PHP?

这对我有帮助:

location.reload(true);改为window.location.href = '';