【问题标题】:why session data not being destroy?为什么会话数据没有被破坏?
【发布时间】:2014-09-10 18:22:39
【问题描述】:

我有一些简单的 php 简单脚本。一种是显示登录用户,另一种是注销。这些是来自较大文件的代码片段。无论如何,首先我执行登录脚本并输入用户名,用户名显示正常。接下来我执行了注销。如果我再次进入登录页面,我希望 login_user 为空,但事实并非如此。旧的 login_user 名称仍然存在。如果我清除缓存并再次打开登录页面,login_user 就消失了。如何永久清除会话数据?这是login.php

<?php

  session_start();
  $_SESSION['myerror']="XXX";

  displayLoginUser();

  function displayLoginUser()
  {
     if (isset ($_SESSION['login_user']))
     {
        echo $_SESSION['login_user'];
     }
  } // end displayLoginUser
?>

这里是logout.php

<?php

// NOTE none of the statements below seem to clear the login_user    
$_SESSION['login_user'] = " ";

unset ($_SESSION['login_user']);

session_destroy();

header("location: library.php");
?>

【问题讨论】:

    标签: php session


    【解决方案1】:

    试试这个:

    session_start();
    $_SESSION = array();
    session_destroy();
    

    将完全销毁会话及其所有变量,无需 unset() 或其他任何东西

    【讨论】:

    • $_SESSION = array() 不起作用。这是一些额外的信息,我在 MAC safari 浏览器上运行它。我也试过chrome浏览器,同样的问题。我使用的 Web 服务器是 Apache。
    • 首先你在array() $_SESSION = array(); 之后缺少一个分号吗?对我来说工作正常...您是否收到任何错误或即使在您应用我的解决方案后用户仍保持登录状态?
    • 好的,我现在明白我的错误了。我省略了 session_start 语句。谢谢。
    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多