通过会话登录代码时,我随机收到以下错误;警告:session_regenerate_id():会话对象销毁失败...,
我在 Windows 8.1 Pro 64 位上使用 WAMP 和 PHP5.5.12
$session_name = 'seam_secure_session_id';
ini_set('session.use_only_cookies', 1);
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_name($session_name);
session_start();
session_regenerate_id(true);// regenerated the session, delete the old one.
ob_start();Run Code Online (Sandbox Code Playgroud)
我没有收到其他会话警告或错误,并且在我的代码开始时调用任何 HTML 之前的登录代码。我检查了 php.ini 和 session.save_path。保存路径上的权限很好(经过身份验证的用户、系统、管理员、用户都有完全控制权),会话文件被保存在文件夹中。
我不知所措,有什么想法吗?
谢谢
李
我认为您看到警告是因为“session_regenerate_id(true)”尝试删除旧会话,但此时可能未写入会话。PHP 将在脚本末尾写入会话文件,同时会话值仅在内存中。这也是我们在头部重定向后使用 session_write_close 或 exit 的原因,以便此时会话已经写入。
也许您可以在尝试删除会话之前检查会话是否可用?例如:https : //github.com/yiisoft/yii/commit/45d6a7d51be2ea12a935a94511290cb9670706d9
| 归档时间: |
|
| 查看次数: |
10120 次 |
| 最近记录: |