Une introduction à la façon dont PHP utilise des mécanismes de connexion indépendants pour deux projets différents sous le même nom de domaine

巴扎黑
Libérer: 2023-03-16 11:42:02
original
1778 Les gens l'ont consulté

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();
// ...
Copier après la connexion

exemple.com/b/init. php


// session_id('123456'); // 可以自定义session_id,默认是系统自己生成的

session_name('EBCP_SID'); // session_name 必须定义在session_start() 前

session_start();
// ...
Copier après la connexion

2.Test

exemple .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"));
}
Copier après la connexion

Résultat de sortie :


session 页面- 欢迎你继续回来 Corwien 2017-09-22 07:49:15
Copier après la connexion

Cookie de navigateur pour le projet 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"));
}
Copier après la connexion

Résultat de sortie :


session_v2 页面- 欢迎你继续回来 JackMa 2017-09-22 07:49:15
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal