Php 对所有子域使用一个会话

Php 对所有子域使用一个会话,php,session,Php,Session,我想对所有子域使用一个会话 myphp.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:

我想对所有子域使用一个会话

my
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\u html/test1.php

<?
session_set_cookie_params(0, '/', 'www.mydomain.com');
session_start();
$_SESSION['test']='test......';
print_r($_SESSION);
?>
<?
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上,我会得到这个结果

如果我在sub2.domain.com上,我会得到这个结果['test_two']=>'test….'


没有任何变化,它像正常的一样工作

您当前的代码试图为www.example.com设置cookie,而您甚至没有从www.example.com访问该站点!这就是它不起作用的原因

您将希望在整个域名中共享会话cookie,如下所示:

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

我已将.www.domain.com替换为.domain.com,但仍然没有work@AlaaGamal-在您的问题中,您使用了
www.example.com
,而不是
。www.example.com
。请注意差异,并在提问和后续行动中保持精确。这些小小的标点符号非常重要。@ghoti,我已经尝试了所有的东西,.www.example.com和.example.com以及example.com和www.example.com,但仍然没有成功,我甚至将php.ini编辑成session.cookie\u domain=.example.com,但仍然不起作用,我不知道为什么!我认为你一针见血。“尝试一切”不是解决办法。了解这个过程是如何工作的,让你只选择一件事,知道它会工作,而不需要“尝试”。阅读相关内容,然后单击问题下方的链接,提供有关您尝试过的新事物的更多详细信息,以及它们的结果与您的原始发现之间的差异。