【发布时间】:2012-05-07 22:12:45
【问题描述】:
当用户在 PHP 中登录时,我正在尝试重置会话 cookie 及其生命周期。 这听起来很微不足道,但我仍在努力使它正确。
当页面被加载时,用户可能已经拥有也可能没有cookie。如果他有一个,我想删除它并重置 sessionId,如果没有,我会给他一个新的,并有适当的生活。由于我使用的是 PHP 版本,我无法使用 session_status()。
这是我想出的,但当用户已经拥有会话 cookie 时它不起作用。
if (isset($_COOKIE[session_name()])) setcookie(session_name(), false);
session_set_cookie_params(2678400); // sets cookie life to one month
session_start();
// do stuff
当用户登录时,旧的 cookie 通常会被删除,但session_start() 不会传递新的 cookie。有没有一种方法可以强制传递一个新的 cookie 而无需手动实现 session id 创建的逻辑?
非常感谢您的帮助
【问题讨论】:
标签: php session-cookies