0

基本上在我的网络开发服务器上,我有几个网站项目正在进行。我遇到了我的一个网站项目会话变量与另一个网站项目的会话变量冲突的问题。这两个网站项目都在同一台服务器下。那么有没有一种很好的方法来区分网站项目之间的变量?希望这是有道理的...

这两个网站也是会员类型的网站,所以我对网站的会员部分使用相同的会话变量。

并且这两个网站都在 codeigniter 框架上。那么使用codeigniter,我该如何解决这个问题?

4

3 回答 3

1

只需使用 session_name

例子 :

  session_name("WebsiteID");
于 2012-08-10T06:44:50.653 回答
0

您可以使用 session_name 函数 (http://php.net/manual/en/function.session-name.php) 给每个站点一个唯一的会话名称。仔细阅读有关何时设置会话名称的说明(基本上在任何其他会话功能之前)。

另一种方法是使用“路径”功能来限制您网站的路径(http://www.php.net/manual/en/function.session-set-cookie-params.php)。这样,会话 cookie 将仅对您设置的路径之上或之下的脚本可见。(确保首先删除“根”级别的所有 cookie,因为这些将可见,但所有子目录都可见!)

或者,如果您使用 cookie 手动执行此操作,请在 cookie 名称前加上一些独特的前缀。SetCookie('WebsiteName_' . 'session'、ID、时间、路径等)。

于 2012-08-10T06:39:14.767 回答
0

我所做的是为每个站点都有一个配置文件,我在每个 php 文件中都需要一个配置文件。在这个配置文件中,我指定了数据库参数(用户、密码等)和会话标头: $config['sess_header'] = 'site1';

当我创建或查询会话时,我使用这个 sess_header,例如:$_SESSION[$config['sess_header']]['user_id'] = $user_id;

于 2012-08-10T06:40:52.013 回答