有時候,我們在一個服務器上會經常遇到這樣的問題:
**事件**:一個服務器部署了兩個網站,訪問地址分別是:
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');
?>
~~~
這樣即可解決!