手机版

同一域名下两个不同项目的PHP独立登录机制详解

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

目前有这样一种需求,在一个域名下,比如http://example.com,有两个项目,example.com/a/,example.com/b/,它们是独立的程序,有不同的成员登录机制,但是我们知道在同一个域名下,它的session session是共享的,也就是你在站A登录后,你的站A的session信息也会出现在哔哩哔哩,因为默认的session_id名称是PHPSESSID,也就是, 当您第一次访问项目a时,它将自动生成一个名为PHPSESSID的session_id,并在服务器端创建一个名为session_id的文件。 然后将session_id发送到浏览器的cookie中保存,下次访问时会携带cookie信息,服务器会在继续会话前获取session_id。这样就会出现会话信息共享的情况。我们应该如何分离两个不同的会话信息?

1.定义会话名称

其实很简单,在项目B的初始化文件中使用session的时候修改session_name就可以了.

example.com/a/init.php

session _ start();//.example.com/b/init.php

//session _ id(' 123456 ');//session_id可以自定义,默认为系统自己生成的session _ name(' EBCP _ SID ');//session_name必须在session_start()之前定义;//.第二,考试

example.com/a/test.php

?Php//一个项目测试页定义(' IN_EB ',true);include_once('。/init . PHP ');If ($ _ session ['昵称']){//dump(' session page-欢迎继续返回{$ _ session ['昵称']})。日期(' y-m-d h : I 3360s ');}else{ $_SESSION['昵称']=' Corwien ';转储('会话页面-这是您第一次登录{$ _ session ['昵称']})。日期(' y-m-d h : I 3360s ');}输出结果:

会话页面-欢迎继续回到Corwien 2017-09-22 07336049336015 a项目的浏览器cookie:

example.com/b/test.php

?Php//b项目测试页定义(' IN_EB ',true);include_once('。/init . PHP ');If ($ _ session ['昵称']){//dump(' session _ v2 page-欢迎继续返回{$ _ session ['昵称']})。日期(' y-m-d h : I 3360s ');}else{ $_SESSION['昵称']=' JackMa ';转储(' session_v2页面-这是您第一次登录{$ _ session ['昵称']})。日期(' y-m-d h : I 3360s ');}输出结果:

Session_v2页面-欢迎继续返回jackma 2017-09-22 07:49336015 b项目的浏览器菜单

摘要

以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持。

版权声明:同一域名下两个不同项目的PHP独立登录机制详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。