在我的主页www.website.com上我有一个登录表格,它注册了一个会话:
ini_set('session.gc_maxlifetime', 7200);//set cookie lifetime to 2 hours
ini_set("session.cookie_lifetime", 7200);
ini_set("session.cookie_httponly", 1);//set cookie httponly
ini_set("session.cookie_domain", ".website.com");
session_start();
$_SESSION['login']='yes';
header('Location: http://panel.website.com/');
因此,用户将被重定向到http://panel.website.com。我有以下代码:
ini_set('session.gc_maxlifetime', 7200);//set cookie lifetime to 2 hours
ini_set("session.cookie_lifetime", 7200);
ini_set("session.cookie_httponly", 1);//set cookie httponly
ini_set("session.cookie_domain", ".website.com");
session_start();
if (!isset($_SESSION['login'])) {
header('Location: http://www.website.com/error.php' );
exit();
}
所以问题是:子域无法访问会话,用户总是被重定向到website.com/error.php。
我应该改变什么?我试过session.cookie_domain,但它不起作用。如果您需要更多信息(如phpinfo数据),请告诉我。
谢谢!
答案 0 :(得分:0)
从这里开始:PHP Sessions across sub domains 设置会话名称似乎可以解决它。
$some_name = session_name("some_name");
session_set_cookie_params(0, '/', '.website.com');
session_start();