2012-08-10 31 views
1

分离用于不同的网站项目会话变量在我的web开发服务器的一个很好的方式,我有几个网站项目去。我遇到了一个问题,其中我的codeigniter网站项目session变量与另一个codeigniter网站项目的session变量冲突。这两个网站项目都在同一台服务器下。那么,有没有一种区分网站项目变量的好方法?在笨,什么在同一台服务器

再次,两个网站都建在笨框架。那么,使用codeigniter,有没有办法做到这一点?

回答

1

你可以配置会话的每个应用程序被存储在数据库:

sess_use_database = true; 

http://codeigniter.com/user_guide/libraries/sessions.html

+0

我使用会话数据库但随后又发生了冲突 我两个网站在同一台服务器的使用CI默认的购物车,当我在一个网站在同一时间在空产品添加到购物车另一个网站购物车。 这个问题的解决方法是什么? 请帮忙.. – 2016-10-15 06:25:18

+0

我认为你可以通过应用程序配置会话表名。 – 2016-10-17 15:35:54

+0

不,这个解决方案不工作 – 2016-10-20 10:53:48

1

如果同时你的项目的是同一个域下,然后用相同名称的任何会话变量会发生冲突,因为用户的浏览器存储在该域一个cookie的会话密钥。这里最好的做法是命名空间你的会话变量;例如,如果您希望在项目“foo”和“bar”中都有“username”var,则将两个变量“foo_username”和“bar_username”命名。如果您在每个项目的config .php文件中设置一个常量,并且要为变量使用前缀,那么您可以在每次获取会话变量时使用它。例如,如果您设置了“APP_NAME”在你的config.php不变,并将其设置为“富”的第一个项目,那么你可以设置会话与瓦尔:

$this->session->set_userdata(APP_NAME.'_username', 'smg'); 

$this->session->userdata(APP_NAME.'_username'); 
检索
+0

雅,但有使用CodeIgniter的库或CONFIGS任何其他方式? – user1549397 2012-08-10 18:30:06

2

如果您使用在服务器端分贝跟踪会话信息,您可以指定每个网站不同的分贝。在config.php中查找设置 $ config ['sess_table_name'] ='ci_sessions';

+0

嗯让我试试。谢谢。 – user1549397 2012-08-10 19:09:21

相关问题