除非用户将其关闭,否则如何使会话始终保持活动状态?
我举一个例子说明我是如何做到的。
我这样做是为了实现这一点,但它似乎不起作用:
session_start();
if ($_SESSION['user'] !== false) {
setCookie("session", $_SESSION['user'], time()+365*24*60*60);
}
并在结束会议时:
setCookie("session", $_SESSION['user'], time()-365*24*60*60);
该功能
session_start
是创建和维护会话的功能。会话的内部信息不应在 cookie 中传递(session_start
它已经负责发送带有 a 的 cookiesession_id
)。要增加您必须将选项传递给
session_start
.在示例中,最后一天的会话
cookie_lifetime
用于指示包含 的 cookie 的生命周期以及session_id
服务器内gc_maxlifetime
的清理时间。session_id
关于会话的验证
会话
session_start
在调用该函数时创建,即使用户未登录(或未通过身份验证)也是活动的。您有责任在会话数据(例如$_SESSION['user']
和/或$_SESSION['rol']
等)中记录有关用户是否登录、他们是谁、他们在登录时拥有什么权限等信息。不建议将该信息放入 cookie 中。