ホームページ  >  記事  >  バックエンド開発  >  PHP が同じドメイン名の 2 つの異なるプロジェクトに対して独立したログイン メカニズムを使用する方法の概要

PHP が同じドメイン名の 2 つの異なるプロジェクトに対して独立したログイン メカニズムを使用する方法の概要

巴扎黑
巴扎黑オリジナル
2017-09-26 09:50:131728ブラウズ

この記事は主に、PHP で同じドメイン名の下にある 2 つの異なるプロジェクトに独立したログイン機構を実装する方法に関する関連情報をサンプル コードを通じて詳しく紹介しており、あらゆる人の学習や仕事に一定の参考になります。 、それが必要な友達が来て、以下を見てください。

はじめに

現在、http://example.com のようなドメイン名の下に、example.com/a/、example.com/b/ という 2 つのプロジェクトがあります。この 2 つのプロジェクトは独立したプログラムであり、メンバーのログイン メカニズムが異なりますが、同じドメイン名の下でそれらのセッションが共有されることがわかります。つまり、ステーション a でログインした後、ステーション b のログイン セッションも表示されます。ステーション a のセッション情報。デフォルトの session_id 名は PHPSESSID であるため、プロジェクト a に初めてアクセスすると、PHPSESSID という名前の session_id が自動的に生成され、サーバー側で session_id にちなんで名付けられたファイルが作成されます。 session_id を送信する ブラウザの cookie に保存すると、サーバーは session_id を取得してセッションを継続します。このように、セッション情報を共有する状況が発生します。2 つの異なるセッション情報をどのように分離するか?

1. session_name

の定義は実際には非常に簡単で、プロジェクト b の初期化ファイルで session を使用するときに session_name を変更するだけです。 2. テスト

example.com /a/test.php

session_start();
// ...

出力結果:

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

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

session_start();
// ...
プロジェクトのブラウザ Cookie:


example.com/b/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"));
}


出力結果:

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

B プロジェクトのブラウザクッキー:

以上がPHP が同じドメイン名の 2 つの異なるプロジェクトに対して独立したログイン メカニズムを使用する方法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。