【问题标题】:PHP: SESSION lost on SUBDOMAINPHP:会话在 SUBDOMAIN 上丢失
【发布时间】:2011-11-11 14:16:40
【问题描述】:

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

  • www.example.com
  • my.example.com
  • test.example.com
  • whateversub.example.com

当我尝试使用从 www.example.com 到任何子域的会话数据时,所有会话信息都无法访问。

  • 我没有使用 cookie。只是会话。
  • 我有 GoDaddy 作为网络主机。
  • GoDaddy 允许上传自定义 php5.ini 文件。

由于我是 PHP 初学者,请把你的回答低一点,以便我理解。

这是一个例子:

文件 1:

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

session_start();
$_SESSION['status'] = "ON";
header( 'Location: http://sub.mywebsite/' );
?>

文件 2:

<?php
// FILE 2: sub.example.com/index.php

session_start();
echo "Your session status is: ";
echo $_SESSION['status'];
?>

【问题讨论】:

  • 对不起!我确实有 session_start。
  • 看看我的第三行。跳过 session_start() 我回答的一部分
  • 由于我是初学者,我不明白你的意思以及如何使用该代码。
  • 将 my-domain.com 更改为您的域(不要在之前删除那个点!)并将其放在 session_start() 之前;
  • 我是把它放在所有文件上,包括 www.mywebsite 上的文件还是只放在子域文件上?

标签: php session subdomain


【解决方案1】:

感谢这个链接PHP Sessions across sub domains,我解决了我的问题

PHP:

<?php
session_set_cookie_params(0, '/', '.mywebsite.com');
session_start();
//Code...
?>

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • @Omar:你认为我得到了 2 次赞成票吗?好的,复制您粘贴到脚本中的行并重试,顺便说一句,请确保您首先销毁会话并更新它
    • @Omar:仅在子域上?只需将 '.my-domain.com' 更改为 'subdomain.mydomain.com'
    • 如何在另一个子域上设置 SESSIONID cookie?
    • @genesis 我还在一个子域上传了我的网站.. 它的域是 www.agicent.com,但我的主要文件在...ibuildmart.agicent.com/cms,我保留了我的登录页面在这里。可以请帮帮我。这里的会话不起作用。我从很多天开始就遇到了这个问题。所有文件都位于 cms 文件夹中,因此该人必须直接或间接访问 ibuildmart.agicent.com/cms/index.php .什么是可能的解决方案。我的文件在godaddy服务器上。请帮助
    【解决方案3】:

    默认情况下这不起作用,但您可以按照此处所述解决它:http://www.gonnalearn.com/2008/04/10/sharing-session-data-across-domains-with-php/

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 2012-05-09
      • 2012-06-03
      • 1970-01-01
      • 2017-04-05
      • 2014-06-11
      • 2011-12-05
      • 2020-07-11
      相关资源
      最近更新 更多