我的页面中有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来获取不同的会话,我可以销毁会话,但我不能在同一页面中有多个会话!
答案 0 :(得分:0)
请使用session_start();一旦在页面顶部。 成功登录后,请检查所有已设置的会话,例如在您的情况下。
$_SESSION['parent'];
$_SESSION['employee'];
$_SESSION['student'];
会话名称( '');将覆盖上一个会话的名称,因此您不必在此处使用session_name。 如果检查是否存在特定会话的值,或者存在会话名称 未设置($ _ SESSION( 'your_session_key')); 希望它会奏效。 感谢