【问题标题】:Allowing users to Refresh browser without the "Confirm Form Resubmission" pop-up允许用户在没有“确认表单重新提交”弹出窗口的情况下刷新浏览器
【发布时间】:2010-03-10 05:07:27
【问题描述】:

我有一个登录系统,在登录时,如果我刷新浏览器,Chrome 会显示一个名为“确认重新提交表单”的弹出窗口。我认为其他浏览器也会发生同样的事情。

如何在没有此确认弹出窗口的情况下允许刷新浏览器?当然,我也想在刷新浏览器的同时保持登录状态。

【问题讨论】:

    标签: php http


    【解决方案1】:

    处理完 POST 页面后,将用户重定向到同一页面。

    开启http://test.com/test.php

    header('Location: http://test.com/test.php');
    

    这将摆脱该框,因为刷新页面不会重新提交数据。

    【讨论】:

    • 谢谢...这看起来很有希望,但是当我将它添加到我的索引页面时,页面无法加载并且 Chrome 说它有重定向循环问题。
    • 只有在检测到 POST 数据时才需要重定向它。测试类似if($_SERVER['REQUEST_METHOD'] == "POST"){ header('blah blah blah'); }
    • 是的,只要把它放在页面的任何地方,每次都会重定向用户,创建一个重定向循环到同一个页面。你必须有一些声明可以阻止它。
    • 感谢 Chacha102... 它有效。我真的很感谢你的帮助。你很酷。
    • 请注意,任何 header('Location:.. 后面必须始终跟 exit; 以防止进一步的代码执行
    【解决方案2】:

    好的,所以在你的登录页面顶部,你可以有这个:

    <?php
    if (isset($_POST['username'])) {
    // Do you login stuff here....
    
    if ($passed == true) {
        header('Location: index.php');
    } else {
        echo "Invalid username/password!";
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多