PHP在同一域名下兩個不同的項目做獨立登錄機制詳解

更新:2017-10-25    編輯:尋香    來源:GeGuai    人氣:加載中...    字號:|

標簽:項目  詳解  登錄  不同  兩個  獨立  百度搜索

前言

目前有這樣一個需求,在一個域名下 如: 下,有兩個項目,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:

PHP在同一域名下兩個不同的項目做獨立登錄機制詳解


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在同一域名下兩個不同的項目做獨立登錄機制詳解

總結


評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)

站點導航

您可能在找這些
黑龙江快乐十分走势图