php实现多个二级域名间session共享方法总结

PHP SESSION 的工作原理:
  在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用 session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ID(此 ID 可通过函数 session_id() 获取/设置)。SESSION ID 可以通过两种方式保留在客户端,使得请求不同的页面时,PHP 程序可以获知客户端的 SESSION ID;一种是将 SESSION ID 自动加入到 GET 的 URL 中,或者 POST 的表单中,默认情况下,变量名为 PHPSESSID;另一种是通过 COOKIE,将 SESSION ID 保存在 COOKIE 中,默认情况下,这个 COOKIE 的名字为 PHPSESSID。这里我们主要以 COOKIE 方式进行说明,因为应用比较广泛。

实现session多域名共享的三个方法总结:

(1)
 使用session_set_cookie_params()方法:

           session_set_cookie_params(0, ‘/’,’uxuew.cn’,false,true);

(2)利用php.ini 的session.cookie_domain

1 <?php
2 ini_set("session.cookie_domain",'uxuew.cn');//注:该参数必须在sesson_start()之上,否则将不会生效
3 session_start();
4 $_SESSION['user_name']='xiaoming';
5 echo $_SESSION['user_name'];
6 ?>


(3)利用COOKIE存放session_id();

 
域名一文件php代码:

查看代码  
打印

1 <?php
2 session_start();
3 setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".uxuew.com");
4 $_SESSION['user_name']='hello';
5 echo $_SESSION['user_name'];
6 ?>

域名二文件php代码:

查看代码  
打印

1 <?php
2 session_destroy();
3 session_id($_COOKIE['session_id']);
4 session_start();
5 echo $_SESSION['user_name'];
6 ?>

下面是两个需要注意的问题:

1、ini_set(“session.cookie_domain”,’uxuew.cn’);必须放在session_start()之前,否则无效
2、在某些网站测试的时候必须得注意,或许你本地没有问题,但是在其他机器上或者服务器上有问题,那么你需要检查ini_set(“session.cookie_domain”,’session.com’);这个中的session.com中必须与你的域名 进行真实匹配!不然你的部分session值将会出现问题的!

转载请注明:代码学堂>编程开发 > php教程 > php实现多个二级域名间session共享方法总结

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

磊宇堂 » php实现多个二级域名间session共享方法总结

提供最优质的资源集合

立即查看 了解详情