注销脚本无效

时间:2012-11-08 06:02:05

标签: php session logout

我创建一个文件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'])

帮我销毁这个会话变量

2 个答案:

答案 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");
}
?>