【问题标题】:How to detect whether session_start() has been called in PHP? [duplicate]如何检测 PHP 中是否调用了 session_start()? [复制]
【发布时间】:2011-01-01 03:43:53
【问题描述】:

可能重复:
how do i check if session_start has been entered?

有这样的API吗?

【问题讨论】:

    标签: php session


    【解决方案1】:

    你可以通过调用以下代码找到:

    if(isset($_SESSION))
    {
        //The session was started
    }
    

    【讨论】:

    • 请记住,session_write_close() 会结束会话机制,但不会破坏 _SESSION。
    • 这个答案不正确。正如 VolkerK 指出的那样,即使会话已关闭,仍然可以设置 $_SESSION。没有什么能阻止用户在不启动会话的情况下声明 $_SESSION。更好的检查是:if (session_id())(对于 PHP 版本 if (session_status() != PHP_SESSION_NONE)(对于 PHP 版本 >= 5.4.0)
    • 另外,您可以在不设置 $_SESSION 的情况下调用 session_start()。然后,您的检查将告诉您从未调用过 session_start(),这是不正确的。
    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 2011-03-09
    • 2014-01-20
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多