您的位置:首页 > 其它

二级域名session 共享方案

2013-10-28 11:21 120 查看
1.利用COOKIE存放session_id();

实例:
域名一文件php代码:

<?php
session_start();
setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".session.com");
$_SESSION['user_name'] = '梁山良民';
echo $_SESSION['user_name'];
?>


域名二文件php代码:

<?php
session_destroy();
session_id($_COOKIE['session_id']);
session_start();
echo $_SESSION['user_name'];
?>


2.利用php.ini 的session.cookie_domain
备注:这里是用php代码实现不需要修改php.ini的配置文件;如果有需要你可以在php.ini里面修改配置文件(该情况下就不需要改段代码:ini_set("session.cookie_domain",'session.com');)
实例:
域名一文件php代码:

<?php
ini_set("session.cookie_domain",'session.com');//注:该参数必须在sesson_start()之上,否则将不会生效
session_start();
$_SESSION['user_name'] = '梁山良民';
echo $_SESSION['user_name'];
?>


域名二文件php代码:

<?php
ini_set("session.cookie_domain",'session.com');
session_start();
echo $_SESSION['user_name'];
?>


后期遇到问题需要特别说明哈,嘿嘿!

第一:ini_set("session.cookie_domain",'session.com');必须放在session_start()之前;

第 二:在某些网站测试的时候必须得注意,或许你本地没有问题,但是在其他机器上或者服务器上有问题,那么你需要检查 哈,ini_set("session.cookie_domain",'session.com');这个中的session.com中必须与你的域名 进行真实匹配!不然你的部分session值将会出现问题的!

<?phpclass mdSession{
/*
  
多域名解决方案参考

使用: 服务器A,服务器B,在A的index.php登陆,在B里建立一个接收SESSION的文件,
例如ses_get.php
A的index.php做如下修改
最开始加上session_start();
<body></body>里,
任意一个地方写上:mdSession::_set('B/ses_get.php')
而ses_get.php则在开头写上
mdSession::_get();
@作者:surfchen@gmail.com http://www.surfchen.org/ */
function mdSession(){}

function set($urls)
{
if (!is_array($urls))
{
$urls=array($urls);
}
foreach ($urls as $value)
{
echo '<span style="position:absolute;visibility:hidden"><iframe src="'.$value.'?'.session_id().'"></iframe></span>';
}
return true;
}

function get()

{
session_id($_SERVER['QUERY_STRING']);
session_start();
return true;
}

function _set($urls)
{
$obj=new mdSession();
return $obj->set($urls);
}

function _get()
{
$obj=new mdSession();
return $obj->get();
}

}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: