练习使用session_start()

时间:2016-09-14 15:14:27

标签: php

我应该使用

session_start()

if (session_id() == ""){
  session_start();
}

因为我没记错,没有后者会有另一条错误信息吗?

4 个答案:

答案 0 :(得分:3)

PHP> = 5.4.0

版本的推荐方式
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

来源:http://www.php.net/manual/en/function.session-status.php

对于 PHP<的版本5.4.0

if(session_id() == '') {
    session_start();
}

这些都应该适用于你所要求的。

答案 1 :(得分:1)

我做这样的事情来阻止会话劫持。然后只需在每个页面的开头调用该函数。

public function start_session()
{
    session_start();

    if (rand(1, 10) == 5)
    {
        session_regenerate_id();
    }
}

答案 2 :(得分:1)

良好的做法是始终将session_start()置于代码的最开头,无论您遇到什么情况。

来自session_id()的官方PhP文档:

  

session_id()返回当前会话的会话ID或空字符串(“”),如果没有当前会话(不存在当前会话ID)。

以下是如何检查已存在的session_id()

的示例
session_start();

if( empty(session_id()) ) {
    session_id();
}

始终来自文档:

  

session_id()用于获取或设置当前会话的会话ID。

答案 3 :(得分:0)

正如php手册所述,session_create功能将创建一个新会话,或者返回当前会话如果您已经创建了一个会话。所以不应该检查是否有会话。 如果您仍想检查它,我建议使用Flux Coders方式。