使用相同的IP地址保存2个PHPSESSID访问计算机

时间:2013-11-23 06:40:33

标签: php apache cookies subdomain wamp

服务器 WAMP 。我有2个sugarcrm站点,一个用于生产,在 www / folder1 保存,其他用于开发说保存在 www / folder2 。我正在使用IP地址访问它们(例如 66.102.0.0/folder1 66.102.0.0/folder2 )。浏览器为它们保存1个cookie(PHPSESSID)。如果我登录/退出到第一个站点,它也会影响其他站点。我可以在localhost创建子域,如 folder1.localhost folder2.localhost ,但是如何基于IP的子域, folder1.66.102.0.0 folder2.66.102.0.0 (看起来很有趣:))?或者我可以为不同的文件夹使用不同的端口,例如 66.102.0.0:80 66.102。 0.0:8080 ?那么浏览器会保存2个cookie,如果端口在同一个IP地址上有所不同吗?我无法更改登录/注销,它的含糖量不是核心PHP。我可以使用不同的浏览器,但我的老板说要分开制作cookies。或者是否有任何基于文件夹分隔cookie的浏览器插件?

2 个答案:

答案 0 :(得分:0)

致电session_set_cookie_params()将Cookie限制为特定文件夹:

$params = session_get_cookie_params();
session_set_cookie_params($params['lifetime'], '/folder1');
session_start();

答案 1 :(得分:0)

是。创建子域应该可以解决您的问题。我一直这样做。

如果您以66.102.0.0打开您的网站,那么您的会话将基于导致所有问题的网址。

注意:这里提到的目录是Windows wamp特定的,但只要找到合适的文件,这适用于所有操作系统中的Apache。

第1步。取消注释bin/apache/Apache*.*.*/conf/httpd.conf

中的这一行
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

第2步。bin/apache/Apache*.*.*/conf/extra/httpd-vhosts.conf文件中创建虚拟主机条目。

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/folder1"
    ServerName folder1.localhost
    ErrorLog "logs/folder1.localhost-error.log"
    CustomLog "logs/folder1.localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/folder2"
    ServerName folder2.localhost
    ErrorLog "logs/folder2.localhost-error.log"
    CustomLog "logs/folder2.localhost-access.log" common
</VirtualHost>

第3步。重启wampserver / apache。

第4步。编辑您的主机文件。 C:\Windows\System32\drivers\etc\hosts

添加条目。

127.0.0.1 folder1.localhost # You probably want 66.102.0.0 over here instead of 127.0.0.1
127.0.0.1 folder2.localhost