我已经发布了类似的内容,但我重新设计了整个系统。我没有为原始系统创建一个单独的帐户子域。我在从命名会话中获取任何变量时遇到问题。我正在尝试在子域中传输用户信息以用于登录和跟踪目的。无论如何,这是代码。
登录脚本
<?php
session_name('LoginSession');
session_set_cookie_params(0, '/', '.ueteribus.com');
session_start();
?>
该代码只是告诉$ _SESSION遍布所有域的位。 (或至少它应该是)无论如何,LoginSession名称是问题所在的位置。如果添加了那个,那么我无法使用我的调用脚本显示任何内容。
目前我使用
$ _ SESSION [ 'USERNAME_ueteribus']
$ _SESSION [ 'PASSWORD_ueteribus']
$ _SESSION [ 'loginsession21']
这些是我使用的主要$ SESSIONS,目前我在向Cookies提供任何特定名称时无法显示它们。
这是我用来按名称调用实际$ _SESSION的当前脚本。
<?php
session_name('LoginSession');
session_start();
echo $_SESSION['loginsession21'];
?>
在我添加$ _SESSION的自定义名称之前,这工作正常。
任何帮助都会非常感激,因为这个问题困扰了我很长一段时间,也就是说。当我真正进入浏览器的Cookies时,我看到了LoginSession,但它列在主域名下。 www.XXXX.com而不是account.xxxx.com。 不知道这是否正常,无论如何..可以要求任何其他信息,并感谢您提供的任何帮助。
注意:上面列出的所有脚本和代码都保存在帐户子域中!
更新:
我刚试过这段代码,但仍然无效。
<?php
session_name('LoginSession');
session_set_cookie_params(0, '/', '.ueteribus.com');
session_start();
echo $_SESSION['loginsession21'];
?>
此外,我将此脚本添加到每个页面的顶部。
<?php
session_set_cookie_params(0, '/', 'ueteribus.com');
session_start();
?>
答案 0 :(得分:1)
我的猜测是你错过了其他(不是登录脚本)文件中的会话cookie配置。就像session_name()
一样,您需要在每次请求时调用它,之前 session_start()
(尽管其他评论者可能会相信)。
<?php
session_name('LoginSession');
session_set_cookie_params(0, '/', '.ueteribus.com');
session_start();
// of course this line will only work if you've previously set the "loginsession21" key
echo $_SESSION['loginsession21'];
?>
更改会话名称或Cookie参数后,您需要从浏览器中清除旧Cookie。
您还需要确保会话未在代码中其他地方启动。
我建议将所有会话配置内容移动到一个文件中,并将其包含在每个可请求页面的顶部。同时删除对session_start()
的所有其他来电。
<?php
// session_config.php
session_name('LoginSession');
session_set_cookie_params(0, '/', '.ueteribus.com');
session_start();
然后,在其他一些脚本中
<?php
// some_other_script.php
require_once __DIR__ . '/relative/path/to/session_config.php';