gpt4 book ai didi

php - 如何判断 session 是否处于事件状态?

转载 作者:IT王子 更新时间:2023-10-29 00:54:57 27 4
gpt4 key购买 nike

根据请求,您可以通过几种不同的方式判断 session 是否已启动,例如:

$isSessionActive = (session_id() != "");

或者:

$isSessionActive = defined('SID');

但是,如果您启动 session ,然后关闭它,这两种方法都会失败; session_id() 将返回先前 session 的 ID,而 SID 将被定义。同样,此时调用 session_start() 将生成 E_NOTICE 如果您已经有一个事件 session 。有没有一种理智的方法来检查 session 当前是否处于事件状态,而不必求助于输出缓冲、关闭操作符 (@session_start()) 或其他与 hacky 一样的东西?

编辑:我写了一个补丁来尝试在 PHP 中包含这个功能:http://bugs.php.net/bug.php?id=52982

编辑 2011 年 8 月 29 日:PHP 5.4 添加了新功能以解决此问题:"Expose session status via new function, session_status"

// as of 8/29/2011
$isSessionActive = (session_status() == PHP_SESSION_ACTIVE);

2011 年 12 月 5 日编辑:session_status()在 PHP 手册上。

最佳答案

查看对原始问题的修改;基本上,PHP 5.4 及更高版本现在有一个名为 session_status() 的函数来解决这个问题!

"Expose session status via new function, session_status" (SVN Revision 315745)

如果您在 PHP 5.4 之前的版本中需要此功能,请参阅 hakre's answer

关于php - 如何判断 session 是否处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788369/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com