我疯了!
function initialize() {
session_start(); //EDITED
if(blnSessionIsStarted() && !session_destroy()) // Destroy session on disk
return false;
...
if(!blnSessionIsStarted() && !session_start()) //EDITED
return false; //EDITED
} //EDITED
function blnSessionIsStarted()
{
//From: http://uk3.php.net/manual/en/function.session-status.php#113468
if ( php_sapi_name() !== 'cli' ) {
if ( version_compare(phpversion(), '5.4.0', '>=') ) {
return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
} else {
return session_id() == '' ? FALSE : TRUE;
}
}
return FALSE;
}
在我的网站中,返回
PHP WARNING (2): session_destroy(): Trying to destroy uninitialized session
在blnSessionIsStarted()
内,session_id()
包含非空会话字符串,因此该函数返回true。我使用的是PHP 5.3.10。我想摆脱这个警告,但在我读到的每个地方,使用的代码似乎是最好的做法。我错过了什么吗?
修改 根据一些用户的建议并查看他们的反馈,我添加了一些编辑的行。 但是,现在它又返回了另一个错误(通知)' PHP注意(8):会话已经启动 - 忽略session_start()'。
但是,这些更改无关紧要:为什么即使会话尚未启动,blnSessionIsStarted()也会返回true,如果是,那么如何准确检测会话是否已启动,而不强制调用session_start( )之前?为什么在重新调用session_start()时会抛出通知,以及如何检测到session_start()无法被调用,即使blnSessionIsStarted()表示它已不再启动了?
答案 0 :(得分:0)
您需要先致电session_start();
。现在没有会议。