我为游戏服务器开发了一个小型管理页面,您可以在线添加/删除/编辑设置。
一切正常,但我的会话有问题。如果登录成功,则会创建会话ID
$_SESSION['adm_login'] = "okay";
如果我访问另一个页面,同一平台(在同一个Web服务器上)会自动创建会话。只有在我成功登录我的网页时才会发生这种情况。
我认为发生此问题是因为所有内容都在同一个Web服务器上,因为会话ID是相同的。
我该怎么办?我需要在数据库中创建一个表,用于存储会话ID或...?
任何人都可以给我一个例子,或者会话php的教程。
谢谢!
答案 0 :(得分:3)
使用session.cookie_path
或session.cookie_domain
等设置,以便会话Cookie仅对您希望的路径或域有效。
例如,如果每个“项目”都有一个文件夹,则可以将session.cookie_path
设置为当前项目文件夹。这将确保浏览器仅发送该项目的会话cookie,而不是其他的。将为用户访问的每个项目生成一个新会话。
答案 1 :(得分:1)
查看session_regenerate_id()
功能。它将使用新生成的会话ID更新当前会话ID。
创建唯一的SessionId:
session_start();
session_regenerate_id();
$_SESSION['adm_login'] = "okay";
销毁唯一的SessionId:
session_unset();
session_destroy();
$_SESSION = array();
编写session_unset和session_destroy的原因是,当您创建任何会话时,会在服务器和客户端浏览器中创建会话cookie,当您从服务器销毁会话时,也需要清除在客户端浏览器中创建的cookie。