0

我的页面中有 3 个登录表单,单击注销会破坏所有会话并将它们全部注销。我知道 session_destroy() 会销毁与当前会话关联的所有数据,但我可以给它一个参数还是有什么方法可以指定要销毁哪个会话?我尝试在没有 session_destroy 的情况下使用 unset 但它不会注销用户

代码编辑:

<?php
    if(isset($_GET['auth'])){
        if($_GET['auth']=='parent'){
        session_name('parent');
        session_start();
            if(isset($_SESSION['parent']))
                unset($_SESSION['parent']); 
                session_destroy();
    }}
    if(isset($_GET['auth'])){
        if($_GET['auth']=='employee'){
        session_name('employee');
        session_start();
            if(isset($_SESSION['employee']))
                unset($_SESSION['employee']); 
                session_destroy();
    }}
    if(isset($_GET['auth'])){
        if($_GET['auth']=='student'){
        session_name('student');
        session_start();
            if(isset($_SESSION['student']))
                unset($_SESSION['student']); 
                session_destroy();
    }}

    header("Location: login.php");
    ?>

我添加了 session_name 以获取不同的会话,我可以销毁会话,但我不能在同一页面中有多个会话!

4

1 回答 1

0

请使用 session_start(); 一次在页面顶部。成功登录后,请检查设置的所有会话,例如您的情况。

$_SESSION['parent'];
$_SESSION['employee'];
$_SESSION['student'];

session_name(''); 将覆盖前一个会话的名称,因此您不必在此处使用 session_name。如果您检查特定会话的值或会话名称存在 unset($_SESSION('your_session_key')); 希望它会奏效。谢谢

于 2017-08-18T09:40:01.057 回答