电脑安全

您当前的位置:主页 > 电脑安全 >

php 不同服务器共享session问题-网络编程

来源:[db:来源]标题:   服务器    编辑:电脑技术全能网 时间:2019-09-20 12:30

原标题:php 不同服务器共享session问题-网络编程
   1、成绩来源稍大一些的网站,平日都市有好几个效劳器,每个效劳器运转着差别功效的模块,应用差别的二级域名,而一个团体性强的网站,用户体系是同一的,即一套用户名、暗码在全部网站的各个模块中都是能够登录应用的。各个效劳器同享用户数据是比拟轻易完成的,只要要在后端放个数据库效劳器,各个效劳器经过同一接口对用户数据停止拜访便可。但还存在一个成绩,就是用户在这个效劳器登录以后,进入另一个效劳器的其余模块时,依然须要从新登录,这就是一次登录,全体通行的成绩,映照到技巧上,实在就是各个效劳器之间怎样完成同享 SESSION 数据的成绩。2、PHP SESSION 的任务道理在处理成绩之前,先来懂得一下 PHP SESSION 的任务道理。在客户端(如扫瞄器)登录网站时,被拜访的 PHP 页面能够应用 session_start() 翻开 SESSION,如许就会发生客户真个独一标识 SESSION ID(此 ID 可经过函数 session_id() 猎取/设置)。SESSION ID 能够经过两种方法保存在客户端,使得恳求差别的页面时,PHP 顺序能够获知客户真个 SESSION ID;一种是将 SESSION ID 主动参加到 GET 的 URL 中,或许 POST 的表单中,默许情形下,变量名为 PHPSESSID;另一种是经过 COOKIE,将 SESSION ID 保留在 COOKIE 中,默许情形下,这个 COOKIE 的名字为 PHPSESSID。这里咱们重要以 COOKIE 方法停止阐明,由于利用比拟普遍。那末 SESSION 的数据保留在那里呢?固然是在效劳器端,但不是保留在内存中,而是保留在文件或数据库中。默许情形下,php.ini 中设置的 SESSION 保留方法是 files(session.save_handler = files),即便用读写文件的方法保留 SESSION 数据,而 SESSION 文件保留的名目由 session.save_path 指定,文件名以 sess_ 为前缀,后跟 SESSION ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据等于序列化以后的 SESSION 数据了。假如拜访量大,能够发生的 SESSION 文件会比拟多,这时能够设置分级名目停止 SESSION 文件的保留,效力会进步许多,设置方式为:session.save_path="N;/save_path",N 为分级的级数,save_path 为开端名目。当写入 SESSION 数据的时间,PHP 会猎取到客户真个 SESSION_ID,而后依据这个 SESSION ID 到指定的 SESSION 文件保留名目中找到响应的 SESSION 文件,不存在则创立之,最初将数据序列化以后写入文件。读取 SESSION 数据是也是相似的操纵流程,对读进去的数据须要停止解序列化,天生响应的 SESSION 变量。3、多效劳器同享 SESSION 的重要阻碍及处理方法经过懂得 SESSION 的任务道理,咱们能够发觉,在默许情形下,各个效劳器会各自分辨对统一个客户端发生 SESSION ID,如关于统一个用户扫瞄器,A 效劳器发生的 SESSION ID 是 30de1e9de3192ba6ce2992d27a1b6a0a,而 B 效劳器天生的则是 c72665af28a8b14c0fe11afe3b59b51b。别的,PHP 的 SESSION 数据都是分辨保留在本效劳器的文件体系中。

上一篇:php和ajax结合实现登录-网络编程

下一篇:没有了