我想对所有子域使用一个会话
我的php.ini
session.save_path = "/var/lib/php/session"
[root@bh /]# ls -la /var/lib/php/session
total 48
drwxrwxrwx 2 root apache 4096 Jul 10 17:51 .
drwxr-xr-x 3 root root 4096 Apr 28 11:22 ..
-rw------- 1 sub1 sub1 233 Jul 10 10:30 sess_1ct61gdtjmd2u2chom3eu4h8t4
-rw------- 1 sub1 sub1 233 Jul 10 10:33 sess_4etbc6bh4lqabeve35mr01fp35
-rw------- 1 sub1 sub1 233 Jul 10 10:40 sess_9h62k8h50tkfnf391ji0mj57m4
我的测试文件/home/sub1/public_html/test1.php
<?
session_set_cookie_params(0, '/', 'www.mydomain.com');
session_start();
$_SESSION['test']='test......';
print_r($_SESSION);
?>
我的第二个测试文件/home/sub2/public_html/test2.php
<?
session_set_cookie_params(0, '/', 'www.mydomain.com');
session_start();
$_SESSION['test_two']='test......';
print_r($_SESSION);
?>
现在我已经浏览了两个文件,
我应该得到这个结果
array(['test']=>'test......',['test_two']=>'test......')
但是,什么都没发生!!
如果我在sub1.domain.com上,我会得到这个结果['test']=>'test......'
如果我在sub2.domain.com上,我会得到这个结果['test_two']=>'test..'
什么都没有改变,它像正常的一样工作
您当前的代码试图为www.example.com设置cookie,但您甚至无法从www.example.com访问该网站!这就是为什么它不起作用。
您将希望在整个域名上共享您的会话cookie,如下所示:
session_set_cookie_params(0, '/', '.example.com');