2011-01-27 54 views
1

我正在调试会话登录,当我登录到www.domainname.com时,会话将只与www一起设置。PHP会话登录不同的URL与www和没有www?

当我要去url domain.com时,会话登录被忽略,我将被提示重新登录表单。

我也设置了会话cookie_domain,但没有工作。

任何人都可以帮助我吗?为什么?

+0

您必须设置Cookie域错误。这是Cookie的默认行为,它们只能在设置的相同完全限定域中访问。 – 2011-01-27 05:47:04

回答

0

我强烈建议将用户重定向到该网站的规范版本(可能是www.example.com域名)。环顾四周,你会注意到大多数网站为了一致性而做到这一点(包括SO;看看当你去到www.stackoverflow.com时会发生什么)。

1

我知道这个问题与“谁先来?鸡蛋还是鸡?”一样古老。

我在这个问题上有很多麻烦。 但是......如果你正在使用PHP我已经找到了解决办法:

在您的登录脚本插入在第一线

<?php 
session_set_cookie_params(0, '/', 'www.yourdomain.com'); 
session_start() 
?> 

,或者你可以尝试yoursubdomain.yourdomain.com代替www.yourdomain.com

它适用于我。希望它也能帮助其他用户。

0

你有没有尝试过的会话域设置为“.example.com的”?:

$lifetime = 0; 
$path = '/'; 
$domain = '.yourdomain.com'; 
session_set_cookie_params($lifetime, $path, $domain); 

注意在$domain字符串变量的开始点。

检查功能here的参考。