2012-07-11 46 views
2

我想使用一个会话的所有子使用一个会话的所有子

php.ini

session.save_path = "/var/lib/php/session" 

[[email protected] /]# 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'] =>'测试... ..”

什么都没有改变,它的工作像一个正常的

回答

1

您当前的代码试图设置www.example.com的cookie中,你甚至不从www.example.com访问网站!这就是为什么它不起作用。

你会想在您的整个域名分享您的会话cookie,像这样:

session_set_cookie_params(0, '/', '.example.com'); 
+0

我把它换成.www.domain.com到.domain.com,它仍然无法正常工作 – 2012-07-11 00:18:25

+0

@AlaaGamal - 在您的问题中,您使用了“www.example.com”,而不是“.www.example.com”。请注意差异,并在您的问题和后续工作中做到精确。这些小小的标点符号非常重要。 – ghoti 2012-07-11 00:35:50

+0

@ghoti,我尝试了所有的.www.example.com和.example.com以及example.com和www.example.com,并且仍然尝试着没有运气,我甚至将php.ini编辑为session.cookie_domain = .example.com,仍然不起作用,我不知道为什么! – 2012-07-11 01:00:37

相关问题