【问题标题】:Session_unset and session_destroy not workingSession_unset 和 session_destroy 不起作用
【发布时间】:2018-08-19 08:11:28
【问题描述】:

只是想知道为什么我的代码在这里不起作用:

<?php
    session_start();
    if (isset($_SESSION)) {
      session_unset();
      session_destroy();
    }
?>

我已经尝试打印出 echo isset($_SESSION) 的结果,它返回 true,我需要登录的页面仍然允许我访问它们。

【问题讨论】:

  • 我已经尝试打印出 echo isset($_SESSION) 的结果,它返回 true,我需要登录的页面仍然允许我访问它们。
  • 不要简单地通过isset($_SESSION)检查登录状态,检查特定的变量。
  • 我检查了会话变量,它似乎不存在,但是,我的需要登录的页面仍然可以访问。但是,我确实在该页面上使用 if (!(isset($_SESSION))) 并带有标题以返回登录,这是问题吗?
  • 这取决于您之前是否开始会话。虽然您应该检查如果您退出用户则不会存在的特定变量。
  • 检查会话的具体变量是否有效,感谢您的帮助!

标签: php session


【解决方案1】:

你必须明确定义一个变量为会话

例如:

登录

<?php
session_start();
if($_POST['username']){
$_SESSION['username'] =$_POST['username']; // session run
}
?>

注销

<?php
    session_start();
    if($_POST['LOGOUT']=='exit'){
@session_unset();
    }
    ?>

你也可以使用 未设置($_SESSION['用户名']); 代替 session_unset();

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2018-10-07
    • 2013-04-29
    • 2018-11-16
    • 2014-01-08
    相关资源
    最近更新 更多