php session跨子域问题解决方案

php session跨子域问题解决方案

ID:12996180

大小:47.00 KB

页数:3页

时间:2018-07-20

php session跨子域问题解决方案_第1页
php session跨子域问题解决方案_第2页
php session跨子域问题解决方案_第3页
资源描述:

《php session跨子域问题解决方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Session主要分两部分:一个是Session数据,该数据默认情况下是存放在服务器的tmp文件下的,是以文件形式存在另一个是标志着Session数据的SessionId,SessionID,就是那个Session文件的文件名,SessionID是随机生成的,因此能保证唯一性和随机性,确保Session的安全。一般如果没有设置Session的生存周期,则SessionID存储在内存中,关闭浏览器后该ID自动注销,重新请求该页面后,重新注册一个sessionID。如果客户端没有禁用Cookie,则Cookie在启动Session会话的时候扮演的是存储

2、SessionID和Session生存期的角色。两个不同的域名网站,想用同一个Session,就是牵扯到Session跨域问题!默认情况下,各个服务器会各自分别对同一个客户端产生SESSIONID,如对于同一个用户浏览器,A服务器产生的SESSIONID是11111111111,而B服务器生成的则是222222。另外,PHP的SESSION数据都是分别保存在本服务器的文件系统中。想要共享SESSION数据,那就必须实现两个目标:一个是各个服务器对同一个客户端产生的SESSIONID必须相同,并且可通过同一个COOKIE进行传递,也就是说各个服务器必

3、须可以读取同一个名为PHPSESSID的COOKIE;另一个是SESSION数据的存储方式/位置必须保证各个服务器都能够访问到。这两个目标简单地说就是多服务器(A、B服务器)共享客户端的SESSIONID,同时还必须共享服务器端的SESSION数据。有三种解决方法:1.只要在php页面的最开始(要在任何输出之前,并且在session_start()之前)的地方进行以下设置ini_set('session.cookie_path','/'); ini_set('session.cookie_domain','.mydomain.com'); ini_

4、set('session.cookie_lifetime','1800');2.在php.ini里设置session.cookie_path=/session.cookie_domain=.mydomain.comsession.cookie_lifetime=18003.在php页面最开始的地方(条件同1)调用函数session_set_cookie_params(1800,'/','.mydomain.com');我的解决方法是在入口出添加如下代码:ini_set('session.cookie_path','/');ini_set('sess

5、ion.cookie_domain','.domain.com');//注意domain.com换成你自己的域名ini_set('session.cookie_lifetime','1800');如图:站点一站点二 可以看到两个站点的PHPSESSID是一样的,当然也解决了跨子域名的问题

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

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

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