Cet article vous présente principalement les informations pertinentes sur la façon d'implémenter un mécanisme de connexion indépendant pour deux projets différents sous le même nom de domaine en PHP. L'article le présente en détail à travers un exemple de code, qui constituera une certaine référence pour l'étude de chacun. ou le travail. La valeur de l'apprentissage, les amis qui en ont besoin, venez jeter un œil ci-dessous.
Avant-propos
Actuellement, il existe une telle demande Sous un nom de domaine tel que : http://example.com, il y en a deux. project.com/a/, example.com/b/, ces deux projets sont des programmes indépendants et ont des mécanismes de connexion des membres différents, mais on sait que sous le même nom de domaine, ses sessions sont partagées. après vous être connecté à la station a, vos informations de session à la station a apparaîtront également à la station b, car le nom de session_id par défaut est PHPSESSID, c'est-à-dire que lorsque vous visitez le projet a pour la première fois, il générera automatiquement un session_id nommé PHPSESSID . et créez un fichier nommé session_id côté serveur, puis envoyez le session_id au cookie du navigateur pour l'enregistrer lors de la prochaine visite, les informations du cookie seront transmises, le côté serveur obtiendra le session_id, puis continuera. la séance. De cette façon, il y aura une situation de partage d'informations de session. Comment séparer deux informations de session différentes ?
1. Définir session_name
C'est en fait très simple, utilisez simplement session dans le fichier d'initialisation du projet b , modifiez simplement le nom_session.
exemple.com/a/init.php
session_start(); // ...
exemple.com/b/init. php
// session_id('123456'); // 可以自定义session_id,默认是系统自己生成的 session_name('EBCP_SID'); // session_name 必须定义在session_start() 前 session_start(); // ...
2.Test
exemple .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")); }
Résultat de sortie :
session 页面- 欢迎你继续回来 Corwien 2017-09-22 07:49:15
Cookie de navigateur pour le projet a :
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")); }
Résultat de sortie :
session_v2 页面- 欢迎你继续回来 JackMa 2017-09-22 07:49:15
Navigateur cookie pour le projet b :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!