我应该使用
session_start()
或
if (session_id() == ""){
session_start();
}
因为我没记错,没有后者会有另一条错误信息吗?
答案 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方式。