>  기사  >  백엔드 개발  >  PHP가 동일한 도메인 이름 아래 두 개의 서로 다른 프로젝트에 대해 독립적인 로그인 메커니즘을 사용하는 방법에 대한 소개

PHP가 동일한 도메인 이름 아래 두 개의 서로 다른 프로젝트에 대해 독립적인 로그인 메커니즘을 사용하는 방법에 대한 소개

巴扎黑
巴扎黑원래의
2017-09-26 09:50:131779검색

이 글에서는 PHP에서 동일한 도메인 이름으로 두 개의 서로 다른 프로젝트에 대한 독립적인 로그인 메커니즘을 구현하는 방법에 대한 관련 정보를 주로 소개합니다. 이 글은 모든 사람의 학습이나 업무에 특정 참조 가치가 있는 샘플 코드를 통해 자세히 소개합니다. , 필요하신 친구들은 오셔서 아래를 보시면 됩니다.

머리말

현재 http://example.com과 같은 도메인 이름 아래에 example.com/a/, example.com/b/라는 두 개의 프로젝트가 있습니다. 이 두 프로젝트는 독립적인 프로그램이며 서로 다른 회원 로그인 메커니즘을 가지고 있지만 동일한 도메인 이름에서 해당 세션이 공유된다는 것을 알고 있습니다. 즉, 스테이션 a에 로그인한 후 스테이션 b의 로그인 세션도 나타납니다. 스테이션 a의 세션 정보는 기본 session_id 이름이 PHPSESSID이므로, 즉 프로젝트 a를 처음 방문하면 자동으로 PHPSESSID라는 이름의 session_id를 생성하고 서버 측에서 session_id라는 이름의 파일을 생성한 후 session_id를 보내십시오. 브라우저의 쿠키에 저장하십시오. 다음에 방문할 때 서버는 session_id를 얻은 후 세션을 계속합니다. 이런 식으로 세션 정보를 공유하는 상황이 발생하게 됩니다. 두 개의 서로 다른 세션 정보를 어떻게 분리할 수 있을까요?

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

2. 테스트

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

출력 결과:


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

프로젝트의 브라우저 쿠키:


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"));
}

출력 결과:


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

프로젝트의 B 브라우저 쿠키:

위 내용은 PHP가 동일한 도메인 이름 아래 두 개의 서로 다른 프로젝트에 대해 독립적인 로그인 메커니즘을 사용하는 방법에 대한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.