处理session跨域几种方案

处理session跨域几种方案

ID:35278252

大小:73.50 KB

页数:16页

时间:2019-03-22

处理session跨域几种方案_第1页
处理session跨域几种方案_第2页
处理session跨域几种方案_第3页
处理session跨域几种方案_第4页
处理session跨域几种方案_第5页
资源描述:

《处理session跨域几种方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、处理session跨域几种方案1.访问共同的sessionId,把当前的sessionId写进cookie里面cookie在不同域名下是不能访问的,我们需要在访问在后台设置用户在登录的时候,把需要共用的登录信息的域名,如果是在1,2级域名下,直接把cookie设置为所属主域名,例如:setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".a.com");也许你会问:如果是在不同的域名呢?采用P3P技术简单解决,实现原理,在访问网站x.com的时候,y.com程序触发y

2、.com文件的写入sessionid值,sessionid值便可以获取,然后把seesion值存入数据库,取相同的sessionid值便可。这就要求y.com里面的程序文件必需能跨域访问,默认情况下,浏览器是不能跨域设置cookie的,加上p3p头后才行。在对应php文件加上:header(‘P3P:CP="CURaADMaDEVaPSAoPSDoOURBUSUNIPURINTDEMSTAPRECOMNAVOTCNOIDSPCOR"’);2.session数据存储位置一致的实现方法session该数据默认情况下是存放在服务器的tmp文件下

3、的,是以文件形式存在,而非存储在服务器的内存中,在这里我们得修改为所有域下都能访问的方式。网上介绍了数据库存储,文件形式存储,内存存储,如果用数据库存储session数据,网站的访问量很大的话,SESSION的读写会频繁地对数据库进行操作,效率就会明显降低,可以考虑存在内存服务器来实现,下面的session.rar里面介绍的是数据库存session的实例。常用跨域共用session的是登录模块,我相信很多开发的朋友的都遇到过,只需要一个地方登录,相关联的网站也是处于登录状态。两种情况:一种9streets.cn和a.9streets.cn

4、之间,另一种是a.comb.com之间方式一:在一,二级域名下调用如下代码:DBsession.phplifeTime=get_cfg_var("session.gc_maxlifetime");//

7、opendatabase-connection$db_handle=@mysql_connect(self::db_host,self::db_user,self::db_pwd);$dbSel=@mysql_select_db(self::db_name,$db_handle);//returnsuccessif(!$db_handle

8、

9、!$dbSel)returnfalse;$this->db_handle=$db_handle;returntrue;}functionclose(){$this->gc(ini_get('sessi

10、on.gc_maxlifetime'));//closedatabase-connectionreturn@mysql_close($this->db_handle);}functionrea

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。