【问题标题】:Logout script not working注销脚本不起作用
【发布时间】:2012-11-08 06:02:05
【问题描述】:

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

帮我销毁这个会话变量

【问题讨论】:

    标签: php session logout


    【解决方案1】:

    你不要$_SESSION=array();,变量已经存在并且是一个数组,你不要再声明为一个。

    您还需要使用 || 进行 OR。单个管道 | 是按位运算符,而不是您想要的。

    ... isset($_SESSION['user_id']) || isset($_SESSION['mem_id']) ...
    

    您可以做的一件事是在if 语句中添加echo 的东西。如果它确实将它回显到屏幕上,你就知道它进入了那个 if 语句。如果没有,你知道它没有。然后你就可以开始判断 if 语句的条件是否满足,从而找出问题所在。

    【讨论】:

      【解决方案2】:

      为什么你使用这么长的代码来破坏 logout.php 上的会话。 只需启动会话,然后将其销毁。 就像代码一样。

      <?php
      session_start();
      if(session_destroy())
      {
      header("Location: index.php");
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-21
        • 2017-01-07
        • 2012-06-19
        • 2018-06-09
        • 2012-12-10
        相关资源
        最近更新 更多