PHP $ _Session跨域转移

时间:2013-11-18 19:55:54

标签: php server-side subdomain

是的,我知道这已被问了一千次..但是,我仍然无法找到任何似乎每次都有效的具体修复。我已经尝试了很多人提出的修复方法,而且我仍然遇到和以前一样的问题。

因此,我运行一个具有多个域设置的服务器。它们都在完全相同的服务器上,并且这里的服务器之间没有传输。

carnal.ueteribus.com < ---此处读取并显示Cookie。
www.ueteribus.com < ---登录脚本在此处托管。

基本上这些是唯一的两个域名,我正试图从WWW获取信息转移到Carnal。说起来容易做起来难。

目前我一直在尝试使用
ini_set('session.cookie_domain','。genteribus.com');

哪个没用,或者我编程错了。无论如何,任何帮助都将非常感激,如果需要任何其他信息,我非常乐意提供。

注意:我无法访问 PHP.ini ,该公司已拒绝此类访问。

session_name('LoginSession');
session_set_cookie_params(0, '/', 'ueteribus.com');
session_start();

我也试过了 这似乎可以创建一个名为Cookie,但我无法弄清楚如何调用它。我的脚本将不再用于调用实际的登录状态,我无法弄清楚如何修复它以确保它甚至正常工作。

<?php
session_set_cookie_params(0, '/', '.ueteribus.com'); 
session_start(); 

if (isset($_SESSION['error'])) {

echo $_SESSION['error'];    
}
?>

2 个答案:

答案 0 :(得分:1)

也许是这样的:

session_name('shared-name-between-sub-domains');
session_set_cookie_params(0, '/', '.domain.com');
session_start();

答案 1 :(得分:1)

脚本中的前两件事必须是:

ini_set('session.cookie_domain', '.xxxx.com');
session_start();

按此顺序,并且在添加该代码之前开始的任何会话都将无法访问。

这假设domain1.xxxx.comwww.xxxx.com都位于同一服务器上并使用相同的PHP实例。如果没有writing your own custom session handler,则无法在服务器之间共享PHP会话数据。

如果服务器上没有其他域,您可能只想在php.ini中设置session.cookie_domain