php会话不在子域上工作

时间:2015-12-07 05:17:05

标签: php session cookies session-cookies

我的会话代码之前正在运行,但现在突然间它无效,而且,如果我从set_session.php拨打www.domain.com,那么我会从{{test_session.php拨打domain.com 1}},它什么都不产生。没有设置会话变量,如果我从test_session.php调用www.domain.com,它只会产生输出。当我从set_sessiondomain.com致电www.domain.com时,从其他子域(即test_session.php)调用sub.domain.com,会话也不会显示。即使我已经使用过session_set_cookie_params(0, '/', '.domain.com')。这样做的正确方法是什么?

set_session.php

<?php
session_name('mysession');
session_set_cookie_params(0, '/', '.domain.com');
session_start();
$_SESSION['test'] = 'Session is set';
echo $_SESSION['test'];
?>

test_session.php

<?php
session_name('mysession');
session_set_cookie_params(0, '/', '.domain.com');
session_start();
echo $_SESSION['test'];
?>

所有答案和建议都受到了极大的欢迎和赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:0)

Cookie生命周期0可能有点太短了:

session_set_cookie_params(30*60, '/', '.domain.com');

修改

另外,我会检查是否在浏览器中实际设置了名为mysession的cookie。

此外,检查您的日志:其中一个原因可能是会话存储(通常是基于文件的)不可写或磁盘已满。