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

发布时间 - 2026-01-11 03:22:33    点击率:

前言

目前有这样一个需求,在一个域名下 如:http://example.com 下,有两个项目,example.com/a/,example.com/b/,这两个项目是相互独立的程序,有不同的会员登录机制,但是我们知道,在同一个域名下,它的 session 会话是共享的,也就是你在a站登录后,b站也会出现你在a站的session信息,因为默认的 session_id 名字是 PHPSESSID,即当你第一访问a项目时,它会自动生成一个名为 PHPSESSID 的session_id,并在服务器端创建一个以session_id 命名的文件,然后发送session_id到浏览器的cookie里保存,当下一次访问时,则会携带该 cookie 信息,服务器端拿到session_id,然后再继续会话。这样就会出现会话信息共享的局面,应该怎样独立出两个不同的会话信息呢?

一、定义session_name

其实很简单的,只需在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() 前

session_start();
// ...

二、测试

example.com/a/test.php

<?php

// a项目测试页面

define("IN_EB", true);
include_once("./init.php");

if($_SESSION['nickname'])
{
 //
 dump("session 页面- 欢迎你继续回来 {$_SESSION['nickname']} " . date("Y-m-d H:i:s"));
}
else
{
 $_SESSION['nickname'] = "Corwien";
 dump("session 页面- 你是第一次登录 {$_SESSION['nickname']} " . date("Y-m-d H:i:s"));
}

输出结果:

session 页面- 欢迎你继续回来 Corwien 2017-09-22 07:49:15

a项目的浏览器cookie:


example.com/b/test.php

<?php

// b项目测试页面

define("IN_EB", true);
include_once("./init.php");

if($_SESSION['nickname'])
{
 //
 dump("session_v2 页面- 欢迎你继续回来 {$_SESSION['nickname']} " . date("Y-m-d H:i:s"));
}
else
{
 $_SESSION['nickname'] = "JackMa";
 dump("session_v2 页面- 你是第一次登录 {$_SESSION['nickname']} " . date("Y-m-d H:i:s"));
}

输出结果:

session_v2 页面- 欢迎你继续回来 JackMa 2017-09-22 07:49:15

b项目的浏览器cookie:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# php一个域名多个  # 项目  # php项目绑定域名访问  # php  # 域名  # php实现的SSO单点登录系统接入功能示例分析  # SSO单点登录的PHP实现方法(Laravel框架)  # php的sso单点登录实现方法  # PHP版单点登陆实现方案的实例  # PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】  # thinkPHP5项目中实现QQ第三方登录功能  # ThinkPHP实现登录退出功能  # php面向对象的用户登录身份验证  # PHP实现的注册  # 登录及查询用户资料功能API接口示例  # PHP第三方登录—QQ登录实现方法  # PHP简单实现单点登录功能示例  # 欢迎你  # 你是  # 你在  # 就会  # 也会  # 当你  # 只需  # 并在  # 这两个  # 这样一个  # 然后再  # 自定义  # 这篇文章  # 谢谢大家  # 它会  # 则会  # 创建一个  # 自动生成  # 就可以  # 其实很简单 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Blade组件和插槽?(Component代码示例)  简单实现Android验证码  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何实现数据库事务?(DB Facade示例)  千库网官网入口推荐 千库网设计创意平台入口  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  PHP正则匹配日期和时间(时间戳转换)的实例代码  java ZXing生成二维码及条码实例分享  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel怎么在Blade中安全地输出原始HTML内容  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  网站制作大概多少钱一个,做一个平台网站大概多少钱?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  敲碗10年!Mac系列传将迎来「触控与联网」双革新  免费网站制作appp,免费制作app哪个平台好?  如何在腾讯云免费申请建站?  Laravel如何处理和验证JSON类型的数据库字段  七夕网站制作视频,七夕大促活动怎么报名?  如何在万网主机上快速搭建网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Python文件流缓冲机制_IO性能解析【教程】  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  php结合redis实现高并发下的抢购、秒杀功能的实例  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  利用JavaScript实现拖拽改变元素大小  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何用免费手机建站系统零基础打造专业网站?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  javascript基本数据类型及类型检测常用方法小结  如何用狗爹虚拟主机快速搭建网站?  音响网站制作视频教程,隆霸音响官方网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何在七牛云存储上搭建网站并设置自定义域名?  网页设计与网站制作内容,怎样注册网站?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解