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