海妖 发表于 2015-1-16 22:12:07

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

在学习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代码:
<?phpsession_start();setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".Alixixi.com");$_SESSION=hello;echo$_SESSION;?>域名二文件php代码:
<?phpsession_destroy();session_id($_COOKIE);session_start();echo$_SESSION;?>(2)使用php.ini的session.cookie_domain
 
备注:这里是用php代码完成不必要修正php.ini的设置文件;假如有必要你能够在php.ini内里修正设置文件(该情形下就不必要改段代码:ini_set("session.cookie_domain",session.com);)
 
域名一文件php代码:
<?phpini_set("session.cookie_domain",Alixixi.com);//注:该参数必需在sesson_start()之上,不然将不会失效session_start();$_SESSION=梁山良平易近;echo$_SESSION;?>域名二文件php代码:
<?phpini_set("session.cookie_domain",Alixixi.com);session_start();echo$_SESSION;?>上面是两个必要注重的成绩:
 
一: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 (囧),出去换换气没准回来就找到错误啦。

金色的骷髅 发表于 2015-2-19 02:45:39

做为1门年轻的语言,php一直很努力。

柔情似水 发表于 2015-3-6 12:42:41

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

简单生活 发表于 2015-3-13 01:09:25

写的比较杂,因为我也是个新手,不当至于大家多多指正。

愤怒的大鸟 发表于 2015-3-20 09:10:56

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
页: [1]
查看完整版本: PHP教程之PHP完成同服务器多个二级域名共享 SESS...