PHP:子域上的会话丢失

PHP:子域上的会话丢失,php,session,subdomain,Php,Session,Subdomain,我正在尝试在多个子域上使用会话数据: www.example.com my.example.com test.example.com whateversub.example.com 当我尝试将www.example.com中的会话数据用于任何子域时,无法访问所有会话信息 我不吃饼干。只是几节课 我让戈达迪担任网络主持人 GoDaddy允许上载自定义php5.ini文件 由于我是一名PHP初学者,请将您的回答压低,以便我能理解。 以下是一个例子: 文件1: <?php // FILE

我正在尝试在多个子域上使用会话数据:

  • www.example.com
  • my.example.com
  • test.example.com
  • whateversub.example.com
当我尝试将www.example.com中的会话数据用于任何子域时,无法访问所有会话信息

  • 我不吃饼干。只是几节课
  • 我让戈达迪担任网络主持人
  • GoDaddy允许上载自定义php5.ini文件
由于我是一名PHP初学者,请将您的回答压低,以便我能理解。

以下是一个例子:

文件1:

<?php
// FILE 1: www.example.com/index.php

session_start();
$_SESSION['status'] = "ON";
header( 'Location: http://sub.mywebsite/' );
?>
<?php
// FILE 2: sub.example.com/index.php

session_start();
echo "Your session status is: ";
echo $_SESSION['status'];
?>
<?php
session_set_cookie_params(0, '/', '.mywebsite.com');
session_start();
//Code...
?>

文件2:

<?php
// FILE 1: www.example.com/index.php

session_start();
$_SESSION['status'] = "ON";
header( 'Location: http://sub.mywebsite/' );
?>
<?php
// FILE 2: sub.example.com/index.php

session_start();
echo "Your session status is: ";
echo $_SESSION['status'];
?>
<?php
session_set_cookie_params(0, '/', '.mywebsite.com');
session_start();
//Code...
?>


默认情况下,这将不起作用,但您可以按此处所述解决此问题:

确保您也在子域上设置了SESSIONID cookie

ini_set('session.cookie_domain', '.my-domain.com');

感谢这个链接,我解决了我的问题

PHP:

<?php
// FILE 1: www.example.com/index.php

session_start();
$_SESSION['status'] = "ON";
header( 'Location: http://sub.mywebsite/' );
?>
<?php
// FILE 2: sub.example.com/index.php

session_start();
echo "Your session status is: ";
echo $_SESSION['status'];
?>
<?php
session_set_cookie_params(0, '/', '.mywebsite.com');
session_start();
//Code...
?>


很抱歉!我确实要开始上课了。看看我的第三行。跳过会话_start()我回答的一部分因为我是初学者,我不明白你的意思以及如何使用该代码。将my-domain.com更改为你的域(之前不要删除该点!),并将其放在会话_start()之前;我是把它放在所有的文件中,包括www.mywebsite上的文件,还是只放在子域文件中?@Omar:你认为我得到了2张赞成票吗?好的,复制粘贴到脚本中的行,然后再试一次,顺便说一句,确保先破坏会话并续订it@Omar:仅在子域上?只需将“.my domain.com”更改为类似“subdomain.mydomain.com”的内容,我如何在另一个子域上设置SESSIONID cookie?@genesis我还将我的网站上载到了一个子域。。它的域名是www.agicient.com,但我的主要文件位于…ibuildmart.agicient.com/cms,我将我的登录页面保留在这里。请帮助我。这里的会话不起作用。我已经陷入这个问题好几天了。所有文件都位于cms文件夹中,因此该人员必须直接或间接访问ibuildmart.agient.com/cms/index.php。可能的解决方案是什么。我的文件位于godaddy服务器。请帮助