Php 会话\u取消设置和会话\u销毁不工作

Php 会话\u取消设置和会话\u销毁不工作,php,session,Php,Session,我只是想知道为什么我的代码在这里不起作用: <?php session_start(); if (isset($_SESSION)) { session_unset(); session_destroy(); } ?> 我已尝试打印echo isset($\u SESSION)的结果,结果返回true,需要登录的页面仍允许我访问它们。您必须明确定义一个变量为SESSION 例如: 登录 <?php session_start

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

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


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

您必须明确定义一个变量为SESSION

例如:

登录

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

注销

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

你也可以使用 取消设置($_会话['username']); 而不是
session_unset()

您必须明确地将变量定义为会话

例如:

登录

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

注销

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

你也可以使用 取消设置($_会话['username']); 而不是
session_unset()

我已尝试打印echo isset($\u SESSION)的结果,结果返回true,需要登录的页面仍允许我访问。不要仅通过执行
isset($\u SESSION)
检查登录状态,检查特定变量。我检查了SESSION变量,但它似乎不存在,我需要登录的页面仍然可以访问。但是,我确实在该页面上使用了
if(!(isset($\u SESSION))
,并带有返回登录的标题,这是问题所在吗?这取决于您之前是否启动了会话。虽然您应该检查特定变量,但如果您注销用户,这些变量将不存在。检查会话的特定变量已起作用,谢谢您的帮助!我已尝试打印echo isset($\u SESSION)的结果,结果返回true,需要登录的页面仍允许我访问。不要仅通过执行
isset($\u SESSION)
检查登录状态,检查特定变量。我检查了SESSION变量,但它似乎不存在,我需要登录的页面仍然可以访问。但是,我确实在该页面上使用了
if(!(isset($\u SESSION))
,并带有返回登录的标题,这是问题所在吗?这取决于您之前是否启动了会话。虽然您应该检查特定变量,但如果您注销用户,这些变量将不存在。检查会话的特定变量已起作用,谢谢您的帮助!