二级域名session 共享方案

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(); } } ?>

 

posted @ 2013-10-28 11:21  北斗极星  阅读(609)  评论(0编辑  收藏  举报