我创建一个文件logout.php并通过
调用它 <a href='logout.php'>log out</a>
但会议不会破坏或未设置。请帮我看看logout.php文件,如下所示
<?php session_start();
if(isset($_SESSION['user_id']) | isset($_SESSION['mem_id'])|
isset($_SESSION['fname']) | isset($_SESSION['lname'])) {
$_SESSION=array();
unset($_SESSION['user_id']);
unset($_SESSION['mem_id']);
unset($_SESSION['fname']);
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '' , time()-3600);
}
session_destroy();
}
header("location:index.php");
?>
在我的登录文件中,我生成三个会话变量
$_SESSION['user_id'])
$_SESSION['mem_id'])
$_SESSION['fname'])
帮我销毁这个会话变量
答案 0 :(得分:1)
你没有$_SESSION=array();
,变量已经存在并且是一个数组,你不再声明为一个。
您还需要使用||
进行OR。单个管道|
是一个按位运算符,而不是你想要的。
... isset($_SESSION['user_id']) || isset($_SESSION['mem_id']) ...
您可以做的一件事就是在echo
语句中添加if
内容。如果它确实将它回显到屏幕上,你知道它会进入if语句。如果没有,你知道它没有。然后你可以开始弄清楚是否满足if语句的条件以找出错误。
答案 1 :(得分:1)
为什么你使用如此长的代码来破坏logout.php上的会话。 只需启动会话然后销毁它。 像Code是。
<?php
session_start();
if(session_destroy())
{
header("Location: index.php");
}
?>