当前位置:首页 > 开发 > 编程语言 > PHP > 正文

Cross domain PHP Sessions:跨站点Session共享

发表于: 2011-02-22   作者:bardo   来源:转载   浏览次数:
摘要:         所谓Cross domain PHP Sessions,即不限于同一域名,不限于同一服务器,不限于同一IP的多个网站共享Session。         这种情况之下的Session共享,是一种极端情况,但却经常遇到。这是因为,我们常

        所谓Cross domain PHP Sessions,即不限于同一域名,不限于同一服务器,不限于同一IP的多个网站共享Session。
         这种情况之下的Session共享,是一种极端情况,但却经常遇到。这是因为,我们常常有多站点单点登录,或共用用户数据库。一次登录多站可访问的通行证模式,是普遍受欢迎的方式。
         实现的方法如下:
         1、首先,你要使用memcache,memcached保存session, 从而能够使得session数据能够保存到不同域名,不同IP的服务器上。关于这一点,与多服务器共享Session的方法完全一样。所以,这里就不多讲了。
         2、其次,保证多站点使用同一SESSIONID。这个方法很简单,只要把源站点的$_COOKIE['PHPSESSID']传给目标站点即可。我们清楚,PHP网站,总会在COOKIE中保存一个名为$_COOKIE['PHPSESSID']变量。所以,只要将这个传给目标站点即可。所以,接下来就是如何传的问题了。
         3、建议的方法是,每一个网站建一个专用于跳转的PHP文件。此文件接收GET参数为目标跳转的URL。PHP只要根据参数生成象如下这样的代码即可:
         header('Location: http://domain.com?sessid='.urlencode($_COOKIE['PHPSESSID'])); 
         当然,这个PHP页面中,要对跳转的URL有所检测,是不是允许传入$_COOKIE['PHPSESSID']的域名。如果这个PHP文件我们称为siteurl.php,那么,页面中的链接就成了:
         http://thisdomain.com/siteurl.php?url=newdomain.php
         这样,页面中也就没有$_COOKIE['PHPSESSID']。
         4、接受跳转的站点,可以通过以下途径读取这个共享的session.
         在session_start()运行之前处理:
 if ($_GET['sessid']){
         session_id($_GET['sessid']);
 }
         这样,接受跳转的站点就可以读到已保存的session了

Cross domain PHP Sessions:跨站点Session共享

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
、 $gb_DBHOSTname = "127.0.0.1"; //主机的名称或是IP地址 02 $gb_DBname = "dbname"; //数据库名
关键字: 跨应用 , session , 共享 , cookie 转自:http://oiote.blog.sohu.com/94812998.html 摘要
场景 跨域请求是随着应用服务化而越来越多遇到的问题,大体分为两类 1. 子域间通信:a.t.com 要和 b
Introduction In today's world wide web, Single Sign On for multiple web applications is a com
CORS 全称:Cross-Origin Resource Sharing 中文意思:跨域资源共享? 好吧,目前中文方面的资料还
今天,做项目时候遇到个问题。之前做东西的时候session一般就直接存在数据库中这样就能解决跨域 不
Session主要分两部分: 一个是Session数据,该数据默认情况下是存放在服务器的tmp文件下的,是以文
Cross-domain security for data vault is described. At least one database is accessible from a
官网:http://www.simplecloud.info/ Overview The System for Cross-domain Identity Management (
在我们日常的项目开发时使用AJAX,传统的Ajax请求只能获取在同一个域名下面的资源,但是HTML5打破了
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号