2012-08-10 20 views
0

基本上在我的网站开发服务器上,我有几个网站项目。我遇到了一个问题,我的一个网站项目会话变量与另一个网站项目的会话变量冲突。这两个网站项目都在同一台服务器下。那么在网站项目之间是否有一种很好的方法来区分变量?希望这是有道理的...最好不要让网站会话变量混淆与其他网站在同一域下

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

和这两个网站都在codeigniter框架上。所以使用codeigniter,我该如何解决这个问题?

回答

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将仅对您设置的路径上或脚下的脚本可见。 (请确保首先删除“root”级别的任何cookie,因为这些cookie将可见但包含所有子目录!)

或者,如果您使用Cookie手动执行此操作,则应将Cookie的名称加上前缀独特。 SetCookie('WebsiteName_','session',ID,时间,路径等)。

0

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

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