0

我为游戏服务器开发了一个小型管理页面,您可以在线添加/删除/编辑设置。

一切正常,但我的会话有问题。如果登录成功,则创建会话 ID

$_SESSION['adm_login'] = "okay";

如果我访问另一个页面,相同的平台(在相同的 Web 服务器上)会自动创建会话。仅当我成功登录我的网页时才会发生这种情况。

我认为这个问题的发生是因为一切都在同一个 Web 服务器上,因为会话 ID 是相同的。

我该怎么办?我是否需要在存储会话 ID 或...的数据库中创建一个表?

谁能给我一个例子,或者会话php的教程。

谢谢 !

4

2 回答 2

3

使用诸如session.cookie_path或之类的设置,session.cookie_domain以便会话 cookie 仅对您希望的路径或域有效。

例如,如果每个“项目”都有一个文件夹,您将设置session.cookie_path为当前项目文件夹。这将确保浏览器仅发送该项目的会话 cookie,而不发送其他项目的会话 cookie。将为用户访问的每个项目生成一个新会话。

于 2012-06-12T15:13:48.450 回答
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。

于 2012-06-12T15:09:45.380 回答