【问题标题】:How to unset a specific php session on logout如何在注销时取消设置特定的 php 会话
【发布时间】:2011-09-21 07:23:49
【问题描述】:

我有 2 个网站。

在一个网站上是这样的:

session_is_registered('site1sess')

在另一个方面是这样的:

session_is_registered('site2sess')

这些是我在登录时为用户提供的会话名称。我的问题是,当我从一个站点注销时,我也会注销另一个站点,因为我使用:

session_destroy(); 

从站点 1 或站点 2 注销并从中删除所有会话变量的最佳方法是什么? 谢谢。

【问题讨论】:

  • $_SESSION['site2sess']=null 应该这样做
  • unset($_SESSION['session_var']);

标签: php session logout


【解决方案1】:

对特定于站点 1 或 2 的所有会话变量使用 unset()

unset($_SESSION['site1']);
//or
unset($_SESSION['site2']);

请注意,session_is_registered 自 PHP 版本 5.3.0 起已弃用。 See docs.

【讨论】:

  • 不是session_unset($_SESSION['site1']);找不到unset();
  • session_unset() 将取消设置所有会话变量。
【解决方案2】:

unset($_SESSION['site1']);之前放session_start()这样

<?php
    session_start();
    unset($_SESSION['site1']);
?>

【讨论】:

    【解决方案3】:

    当您退出 1

    unset($_SESSION['site1sess']);
    

    或者当你注销对方时

    unset($_SESSION['site2sess']);
    

    【讨论】:

      【解决方案4】:

      您可以在不想注销已登录用户时取消设置会话。

      if(isset($_GET['logout'])) {
         session_unset($_SESSION['user']);
      }
      

      【讨论】:

      • session_unset() 不接受任何参数 - 它取消设置当前 $_SESSION 中的所有变量。 Reference.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 2014-05-12
      • 2016-11-30
      • 2011-10-19
      • 2011-10-05
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多