PHP$\u会话不在本地主机子域中驻留
可能重复:PHP$\u会话不在本地主机子域中驻留,php,apache,session,subdomain,xampp,Php,Apache,Session,Subdomain,Xampp,可能重复: 有点复杂,但我有4个subversion存储库,我想在本地主机上并排运行以进行测试 我将php.ini设置为: session.cookie_domain = ".localhost.com" 我设置了我的主机文件: 127.0.0.1 vader.localhost.com 127.0.0.1 luke.localhost.com 当我登录时,它会正确设置cookie Name: PHPSESSID Content: b0d3h7nh5ff40sms26q04o
有点复杂,但我有4个subversion存储库,我想在本地主机上并排运行以进行测试 我将php.ini设置为:
session.cookie_domain = ".localhost.com"
我设置了我的主机文件:
127.0.0.1 vader.localhost.com
127.0.0.1 luke.localhost.com
当我登录时,它会正确设置cookie
Name: PHPSESSID
Content: b0d3h7nh5ff40sms26q04oasq3
Domain: .localhost.com
Path: /
我在登录时设置了$\u会话变量:
$_SESSION['authorized'] = true;
重新加载页面时,标题正确无误:
Cookie PHPSESSID=b0d3h7nh5ff40sms26q04oasq3
Host vader.localhost.com
Referer http://vader.localhost.com/
但是$\u会话变量为空
如果我删除子域,这一切都很好
想法
编辑:
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;
}
从中找到这个答案,应该会有帮助:)
我不知道这个问题是否仍然存在,但我只是遇到了同样的问题
问题并在调用之前设置会话名称解决了它
会话设置cookie参数():
我在php.ini中没有做任何更改,但现在一切正常
好的
/tmp
目录您是否有可能发布更多设置/读取会话的代码?您是否执行了
session\u start()
?@SOliver good point;苏霍辛可能是这里的一个因素。编辑我的帖子以添加更多代码。另外,我检查了php.ini,Suhosin没有安装。@user1178991,检查php.ini不会告诉你。您需要检查PHP二进制文件,或者使用创建一个文件。我尝试单独设置名称,并设置名称+参数。两者都不起作用。我检查了tmp文件。ID为的会话中没有任何内容。我删除了它,然后再试一次。会话变量未写入文件。这是您的问题-文件也未写入。设置会话变量后,是否已将调用添加到session\u write\u close()
?
$some_name = session_name("some_name");
session_set_cookie_params(0, '/', '.some_domain.com');
session_start();