如何在注销时取消设置特定的 php 会话
Posted
技术标签:
【中文标题】如何在注销时取消设置特定的 php 会话【英文标题】:How to unset a specific php session on logout 【发布时间】: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']);
【参考方案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.以上是关于如何在注销时取消设置特定的 php 会话的主要内容,如果未能解决你的问题,请参考以下文章