session_destroy()具有多个会话

时间:2013-02-23 12:05:01

标签: php session logout

我的页面中有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来获取不同的会话,我可以销毁会话,但我不能在同一页面中有多个会话!

1 个答案:

答案 0 :(得分:0)

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

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

会话名称( '');将覆盖上一个会话的名称,因此您不必在此处使用session_name。 如果检查是否存在特定会话的值,或者存在会话名称     未设置($ _ SESSION( 'your_session_key')); 希望它会奏效。 感谢