\Console::log('session_statusxxx',session_status(),ini_get('session.use_trans_sid'));
if(!session_regenerate_id(true)) { // user attempted to log in; create a new session for him
throw new \Exception("Could not regenerate session ID");
}
\Console::log('session_statusxxx',session_status());
我遇到了这个例外 - 即session_regenerate_id
正在返回false
。
在致电session_regenerate_id
之前,我可以看到session_status()
为2
,PHP_SESSION_ACTIVE
,session.use_trans_sid
为"0"
。
不应session_regenerate_id
销毁活动会话并开始新会话吗?
答案 0 :(得分:1)
有很多理由
他们都发出警告以提供更多信息,尝试显示这些通知/记录有关失败原因的额外信息。
答案 1 :(得分:0)
如果您使用SessionHandlerInterface
,请仔细检查session_set_save_handler
的实施情况。就我而言,我从一些函数中返回了错误的值。例如,如果没有会话,read
应该返回空字符串,而不是false
,destroy
应该返回true
或false
,等