【发布时间】:2013-02-23 12:05:00
【问题描述】:
我的页面中有 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 以获取不同的会话,我可以销毁会话,但我不能在同一页面中拥有多个会话!
【问题讨论】:
-
你有一个会话。
-
你只有一个会话。
-
记住:会话是客户端得到的。您的网站访问者只能是学生、员工或家长。它们不能是它们的组合。即使可能是组合(父母和员工),PHP 也只会向客户端发出一个会话。
-
您要删除当前用户以外的会话吗?您可以直接删除 *session_path*/sessions 但这可能不是您想要的
-
哎呀!所以改变会话不能仅仅通过改变参数来完成吗? session_name 有帮助吗?