[英]Practice to use session_start()
我应该使用
session_start()
要么
if (session_id() == ""){
session_start();
}
因为我没有记错,没有后者,还会出现另一条错误消息?
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();
}
两者都应该满足您的要求。
我这样做是为了阻止会话劫持。 然后只需在每个页面的开头调用该函数。
public function start_session()
{
session_start();
if (rand(1, 10) == 5)
{
session_regenerate_id();
}
}
好的做法是始终将session_start()
放在代码的开头,无论遇到什么情况。
来自session_id()
的官方PhP文档:
session_id()返回当前会话的会话ID,如果没有当前会话(不存在当前会话ID),则返回空字符串(“”)。
这是一个如何检查现有的session_id()
的示例:
session_start();
if( empty(session_id()) ) {
session_id();
}
始终从文档中获取:
session_id()用于获取或设置当前会话的会话ID。
如php手册所述, session_create
函数将创建一个新会话,或者如果您已经创建了一个会话,则返回当前会话 。 因此,无需检查是否存在会话。 如果仍然要检查,我建议使用Flux Coders方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.