仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 659|回复: 7
打印 上一主题 下一主题

[学习教程] PHP教程之PHP完成同服务器多个二级域名共享 SESS...

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:12:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。 如今良多分类信息网站城市分出良多个二级域名出来,好比:sh.ganji.com(上海赶集网),su.ganji.com(姑苏赶集网)等等,像这类具有多个二级域名的网站,该怎样完成同步共享session呢,这里不会商在多个服务器上的成绩,仅仅分享一下在统一个服务器下面的多个二级域名网站怎样共享session。
说这个成绩之前,先来懂得一下PHPSESSION的事情道理。在客户端(如扫瞄器)登录网站时,被会见的PHP页面可使用session_start()翻开SESSION,如许就会发生客户真个独一标识SESSIONID(此ID可经由过程函数session_id()猎取/设置)。SESSIONID能够经由过程两种体例保存在客户端,使得哀求分歧的页面时,PHP程序能够获知客户真个SESSIONID;一种是将SESSIONID主动到场到GET的URL中,大概POST的表单中,默许情形下,变量名为PHPSESSID;另外一种是经由过程COOKIE,将SESSIONID保留在COOKIE中,默许情形下,这个COOKIE的名字为PHPSESSID。这里我们次要以COOKIE体例举行申明,由于使用对照普遍。

SESSION的数据是保留在服务器真个文件或数据库中。默许情形下,php.ini中设置的SESSION保留体例是files(session.save_handler=files),即便用读写文件的体例保留SESSION数据,而SESSION文件保留的目次由session.save_path指定,文件名以sess_为前缀,后跟SESSIONID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据便是序列化以后的SESSION数据了。假如会见量年夜,大概发生的SESSION文件会对照多,这时候能够设置分级目次举行SESSION文件的保留,效力会进步良多,设置办法为:session.save_path=”N;/save_path”,N为分级的级数,save_path为入手下手目次。当写进SESSION数据的时分,PHP会猎取到客户真个SESSION_ID,然后依据这个SESSIONID到指定的SESSION文件保留目次中找到响应的SESSION文件,不存在则创立之,最初将数据序列化以后写进文件。读取SESSION数据是也是相似的操纵流程,对读出来的数据必要举行解序列化,天生响应的SESSION变量。
经由过程懂得phpsession的事情道理,这里我们就能够有两种办法办理session共享的成绩了。
(1)使用COOKIE寄存session_id();
 
域名一文件php代码:
  1. <?phpsession_start();setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".Alixixi.com");$_SESSION[user_name]=hello;echo$_SESSION[user_name];?>
复制代码
域名二文件php代码:
  1. <?phpsession_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代码:
  1. <?phpini_set("session.cookie_domain",Alixixi.com);//注:该参数必需在sesson_start()之上,不然将不会失效session_start();$_SESSION[user_name]=梁山良平易近;echo$_SESSION[user_name];?>
复制代码
域名二文件php代码:
  1. <?phpini_set("session.cookie_domain",Alixixi.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值将会呈现成绩的!
您大概感乐趣的文章


  • APACHE统一IP设置多个域名,Apache下统一个IP设置多个假造主机
  • smarty模板中利用php函数和smarty模板中怎样对一个变量利用多个函数
  • 怎样检察统一服务器上挂有几个网站
  • 年夜流量网站该怎样完成优化服务器、静态化、数据库优化、负载平衡以完成高负载
  • mysql服务器主从数据库同步设置
  • CuteFTP毗连ftp服务器时弹出“碰到有效的参数”毛病的办理举措
  • 怎样加强Linux和Unix服务器体系平安性
  • 总结MySQL数据库服务器渐渐变慢的缘故原由息争决举措
也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?
因胸联盟 该用户已被删除
沙发
发表于 2015-1-18 22:46:12 来自手机 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
若天明 该用户已被删除
板凳
发表于 2015-1-31 20:55:13 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-6 23:24:41 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-19 02:45:39 | 只看该作者
做为1门年轻的语言,php一直很努力。
柔情似水 该用户已被删除
6#
发表于 2015-3-6 12:42:41 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
简单生活 该用户已被删除
7#
发表于 2015-3-13 01:09:25 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-20 09:10:56 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表