复杂的类,但我已经得到了我想要通过侧跑边4个颠覆库我的本地主机进行测试。
我设置为php.ini这样:
session.cookie_domain = ".localhost.com"
我安装我的hosts文件:
127.0.0.1 vader.localhost.com
127.0.0.1 luke.localhost.com
当我登录,它正确设置cookie。
Name: PHPSESSID
Content: b0d3h7nh5ff40sms26q04oasq3
Domain: .localhost.com
Path:/
我设置登录$ _SESSION变量:
$_SESSION['authorized'] = true;
刷新页面,标题是正确的:
Cookie PHPSESSID=b0d3h7nh5ff40sms26q04oasq3
Host vader.localhost.com
Referer http://vader.localhost.com/
但$ _SESSION变量是空的。
这一切工作正常,如果我删除子域。
想法?
编辑:
了Suhosin未安装。
此外,有人问为会话设置的完整代码:
if (authenticate($dat['username'], $dat['password'])) {
session_start();
$_SESSION['authorized'] = true;
$_SESSION['username'] = $dat['username'];
$_SESSION['userType'] = findId('t_user', 'username', $dat['username'], 'userTypeId');
$_SESSION['userId'] = findId('t_user', 'username', $dat['username'], 'userId');
$_SESSION['contactId'] = findId('t_user', 'username', $dat['username'], 'userContactId');
array_push($reply, $reply);
$reply['authorized'] = true;
}
有没有可能发布更多的设置/读取会话的代码? – cmbuckley 2012-01-30 21:31:00
你做过'session_start()'吗? – 2012-01-30 21:31:16
@SOliver好点; Suhosin可能是这里的一个因素。 – cmbuckley 2012-01-30 21:33:07