2014-02-11 117 views
0

我正在尝试为我的网站创建一个登录系统。我得到了会议的一切设置和东西。用户在www.myhomepage.tld上保持登录状态,并在任何地方正确显示。PHP会话在子域上被破坏

但是,只要我尝试从anysubdomain.myhomepage.tld访问会话,它就会立即被破坏。登录指示符并不表示用户已登录,并且当我返回到www.myhomepage.tld时,用户不再登录。

我已经设置了一个全局.php文件,其中包含许多用于许多功能的文件页面。其中一人开始会议。

function startsession() { 
    session_name('login'); 
    session_set_cookie_params(0, "/", ".raptilic.us"); 
    session_start(); 
} 

当我访问不调用此函数或任何其他会话函数的子域上的页面时,会话保持活动状态。但只要我从任何子域调用它,会话就会被销毁。为什么?你知道一个解决办法吗?

关于它的奇怪之处不仅在于子会话不可访问会话。会议被破坏。


编辑:这是一些加密的东西有问题。我通过将

php_flag "suhosin.session.cryptdocroot" 0 

加入到.htaccess文件中来解决了问题。

+0

你在哪里创建会话 –

回答

0

试试这个

ini_set('session.cookie_domain', '.raptilic.us'); 
+0

谢谢,但是这不会改变任何东西。 – Rapti

+0

您可以按如下所示使用cookie setcookie(“ID”,$ id,$ hour,“/”,“.raptilic.us”); ...它将跨子域 – user1844933

+0

我做了'setcookie(“ID”,session_id(),3600,“/”,“.raptilic.us”);'。那是对的吗?它仍然不起作用。 – Rapti