嘿伙计们,这将是我在Stackoverflow上的第一个问题。
我想检查一个人是否有活动会话,并在有一个人时将其重定向到另一个页面。但是,我不想使用 session_start(),因为这会在个人电脑上放置一个cookie(我不想在他们没有登录时在人们的电脑上放置cookie)。有没有办法检查现有会话,而不在他们的PC上放置cookie?
提前致谢。
答案 0 :(得分:7)
您可以检查是否存在会话ID cookie,如果之前已在您网站的其他位置设置,则客户端会将其发回:
if (isset($_COOKIE[session_name()])) {
... most likely there's a session available to be loaded ...
}
为了增加安全性,您可以使用session_save_path()
和session_name()
检查是否存在会话文件(假设您使用的是基于文件的默认处理程序),以构建路径传递到file_exists()
答案 1 :(得分:2)
您可以检查函数session_id()
,它将返回用户的当前会话ID,如果不存在会话,则返回空字符串:
if (empty(session_id())) {
/* redirect or logic here here, example: */
header('location:path/to/your/session/start/page');
exit();
}
或者您可以检查会话cookie /全局变量是否已设置(isset($_SESSION)
或isset($_COOKIE[session_name()]
。session_id()
here的文档
答案 2 :(得分:2)
首先测试一下,但我认为session_id() != ""
如果有会话则会给出,如果没有,则为false。