-1

我有一个管理面板和用户面板。两者都有注销链接。当我登录到管理面板时,同时我以用户身份登录。所以两者都有一个会话。

但是当我从管理面板注销时,它也会从用户面板登录。为什么它是从用户注销。我做了单独的登录会话。

管理员和用户的登录会话:

$_SESSION['admin_u'] = $admin_uname;
$_SESSION['admin_pass'] = $admin_pass2; 

$_SESSION['uname'] = $uname;
$_SESSION['pass'] = $pass;  

管理员注销代码:

<?php
if(isset($_SESSION['admin_u']) && isset($_SESSION['admin_pass'])) {
    session_unset($_SESSION['admin_u']);
    session_unset($_SESSION['admin_pass']);
    session_destroy();
    header( "Location:../index.php" );
    exit();     
} else {
    header("Location:../membersignin.php");
    exit();
}
?>

用户注销代码:

<?php
if(isset($_SESSION['uname']) && isset($_SESSION['pass'])) {
    session_unset($_SESSION['uname']);
    session_unset($_SESSION['pass']);
    session_destroy();
    header( "Location:../../index.php" );
    exit();     
} else {
    header("Location:../../membersignin.php");
}
?>  

我的代码有什么问题吗?

4

2 回答 2

3

session_destroy()

session_destroy — 销毁注册到会话的所有数据

这个被调用意味着会话,用户和管理员都被破坏了。如果您不想同时退出会话,您应该简单地取消设置您不想要的会话变​​量并且不要破坏会话。


另外,您使用session_unset()不正确。session_unset()函数释放当前注册的所有会话变量。改用普通的unset()

于 2012-11-12T18:00:48.773 回答
1

session_unset 清除所有会话...不仅仅是一个变量..使用

unset($_SESSION['admin'])

更多:

http://php.net/manual/en/function.session-unset.php

于 2012-11-12T18:01:32.337 回答