【问题标题】:PHP Logout And Session IssuesPHP 注销和会话问题
【发布时间】:2015-05-12 09:27:46
【问题描述】:

她是我在logout.php 上的注销脚本

unset($_SESSION['user']['id']);
        session_unset();
        session_destroy();
        echo '<script type="text/javascript">window.location="login.php"</script>';

我的问题是注销后,当我单击浏览器后退按钮时,我被重定向回index.php 页面。 index.php 显示了一段时间,然后它被重定向到 login.php。我不明白为什么它会重定向回index.php 页面。我不想在用户退出后的一秒钟内向用户显示任何页面/内容。

【问题讨论】:

    标签: php session


    【解决方案1】:

    登录后检查每个页面的条件

     if(!isset($_SESSION['user'] && !isset($_SESSION['user']['id'])){ 
        header('location:login.php') ;
     }
    

    【讨论】:

      【解决方案2】:

      不需要unset($_SESSION['user']['id']);session_unset();session_destroy() 会做这一切。试试 -

      session_destroy();
      header('location:logout.php');
      exit;
      

      【讨论】:

        【解决方案3】:

        好吧,您的用户将不得不使用 javascript 加载该页面,而 javascript 正在执行重定向。您想要的是在 PHP 中发出一个标头以立即强制重定向。但是,如果你已经放了一个标头,你就不能再做一次了,所以你需要在你想要显示的输出中包含另一个 PHP 文件,然后 die()。通过 Javascript 执行此操作时,在 window.location() 调用生效之前总会有一个页面加载,并且许多使用弹出窗口阻止程序的人甚至可能无法正确遵循 javascript 重定向。

        【讨论】:

          【解决方案4】:

          尝试使用。

           header ("Location: login.php");
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-05-01
            • 2013-04-12
            • 1970-01-01
            • 2017-01-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多