有时候,我们在一个服务器上会经常遇到这样的问题:
**事件**:一个服务器部署了两个网站,访问地址分别是:
192.168.0.100:80 站点1
192.168.0.100:81 站点2
两个都是不同的登录系统。当我们登录系统1的时候,如果他们的session键值一样,那么登录站点1后,将登录到2上面了。这并不是我们想要的结果。因为他们是不同的系统,不同的用户权限,所有他们应该有各自的session体系。
**原因**:如果你用google浏览器审查元素,application下的cookie就会发现,他们用的同一个sessionid。
服务器会吧相同ip的站(相同域名应该也一样啦)的session看做一个资源,将session 的id保存到同一个cookie中。只需要想办法将各自的sessionid资源保存到不同键中即可。
**解决:**还好,php中提供了对sessionid的设置方法。通过php.ini中session.name=phpsessid 可以刊出后,他被默认定义为phpsessid。我们可以通过ini_set()去设置他们各自的键值。
~~~
站点1:
<?php
session_start();
ini_set('session.name', 'phpsessid1');
?>
~~~
~~~
站点2:
<?php
session_start();
ini_set('session.name', 'phpsessid2');
?>
~~~
这样即可解决!