Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Einführung, wie PHP unabhängige Anmeldemechanismen für zwei verschiedene Projekte unter demselben Domänennamen verwendet

Eine Einführung, wie PHP unabhängige Anmeldemechanismen für zwei verschiedene Projekte unter demselben Domänennamen verwendet

巴扎黑
巴扎黑Original
2017-09-26 09:50:131727Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Implementierung eines unabhängigen Anmeldemechanismus für zwei verschiedene Projekte unter demselben Domänennamen in PHP vor. Der Artikel stellt ihn im Detail anhand von Beispielcode vor, der für jedermann eine sichere Referenz sein wird oder Arbeit, Freunde, die es brauchen, schauen Sie sich unten um.

Vorwort

Aktuell gibt es eine solche Nachfrage unter einem Domainnamen wie: http://example.com Projekte, example.com/a/, example.com/b/, diese beiden Projekte sind unabhängige Programme mit unterschiedlichen Anmeldemechanismen für Mitglieder, aber wir wissen, dass ihre Sitzungen unter demselben Domänennamen gemeinsam genutzt werden Wenn Sie sich an Station A anmelden, werden Ihre Sitzungsinformationen an Station A auch an Station B angezeigt, da der Standardname der Sitzungs-ID PHPSESSID ist. Wenn Sie also Projekt A zum ersten Mal besuchen, wird automatisch eine Sitzungs-ID mit dem Namen PHPSESSID generiert. , und erstellen Sie eine Datei mit dem Namen session_id auf der Serverseite und senden Sie dann die session_id an das Cookie des Browsers, um sie zu speichern. Beim nächsten Besuch werden die Cookie-Informationen übertragen, die Serverseite ruft die session_id ab und fährt dann fort Sitzung. Auf diese Weise entsteht eine Situation, in der Sitzungsinformationen ausgetauscht werden. Wie können zwei verschiedene Sitzungsinformationen getrennt werden?

1. Definieren Sie den Sitzungsnamen

Es ist eigentlich sehr einfach, verwenden Sie einfach die Sitzung in der Initialisierungsdatei von Projekt b. Ändern Sie einfach den Sitzungsnamen.

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();
// ...

2. Test

Beispiel .com/a/test.php


<?php

// a项目测试页面

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

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

Ausgabeergebnis:


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

Browser-Cookie für Projekt a:


example.com/b/test.php


<?php

// b项目测试页面

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

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

Ausgabeergebnis:


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

Browser Cookie für Projekt B:

Das obige ist der detaillierte Inhalt vonEine Einführung, wie PHP unabhängige Anmeldemechanismen für zwei verschiedene Projekte unter demselben Domänennamen verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn