PHPBB 세션 데이터를 사용하는 응용 프로그램 - 짧은 코드를 사용할 수 없습니다.

StackOverflow https://stackoverflow.com/questions/274496

  •  07-07-2019
  •  | 
  •  

문제

PHPBB 세션과 사용자 데이터를 사용하기 전에 웹 앱을 구축했습니다. 일반적인 움직임은 다음과 같은 코드를 사용하는 것입니다.

define('IN_PHPBB', true);
//replace $phpbb_root_path with path to your forum
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

그러나 포함하여 common.php, 나는 설정 한 다른 방법으로 실행되는 다른 방법을 많이 가져옵니다.

내 예에서는 이미 "리디렉션"메소드가있는 CodeIgniter를 사용하여 응용 프로그램을 실행하고 있습니다. 이 질문은 PHPBB 방법에 미리 구축 된 방법이있는 사람에게 적용되어야합니다.

기본적으로, 내가해야 할 일은 다음과 같습니다.

  1. 사용자가 로그인되었는지 확인하십시오 $user->data[username] == Anonymous
  2. 사용자의 ID, 스크린 이름 등과 같은 '$ user-> data'의 데이터를 활용하십시오.

내가 잡을 수 있을까 $user->data 배열, 그리고 어떻게 든 내 세션에 저장합니까? 누구든지 이것에 대한 아이디어가 있습니까? 미리 감사드립니다!

도움이 되었습니까?

해결책

당신은 내가 프레임 작품을 싫어하는 주된 이유를 겪었습니다. 당신은 무엇을 포함하고 있는지 결코 알지 못합니다. 특히 코드가 객체 지향되지 않은 경우. (전 세계 공간에 자유롭게 떠 다니지 않고 기능이 객체에 속하는 경우 훨씬 좋습니다.)

코드에 정의 된 세션 핸들러가 이미 설치되어 있다고 가정하면 일반 세션 명령을 사용하지 못하게하는 것은 없습니다.

예 : $ _session [ 'user_data_array'] = $ user-> data;

그런 다음 나중에 TEH 세션 데이터를 사용합니다

$ data = $ _session [ 'user_data_array'];

세션 핸들러가 작성되면 현재 세션 핸들러를 대체합니다. (세션이 서버가 아닌 데이터베이스에 저장되도록 완료되었다고 가정합니다.)

교체되지 않은 경우 PHP의 기본 세션 핸들러를 사용할 수 있습니다. 항상 세션 세부 정보가 현재 웹 서버의 폴더에 저장되어 있음을 명심하십시오. 따라서 여러 서버에서 응용 프로그램이 실행되면 후속 방문시 다른 서버에서 사용자를 제공하는 경우 세션 데이터를 사용할 수 없습니다. (따라서 여러 서버간에 세션 데이터를 보존하기 위해 세션 핸들러를 작성해야합니다.)

다른 팁

PHPBB는 데이터베이스에 저장된 비밀번호를 Version 2.X에서 3.0으로 확인하기위한 알고리즘을 변경했습니다. (예전에는 MD5 기능 일뿐입니다.) .

이것은 당신이 그들의 자원을 활용하려면, 당신이 그 길을 가야하는 경우입니다 (이 경우 예전보다 더 명백합니다.)

나는 그것이 어느 쪽이든 끔찍한 결정이라는 데 동의합니다. 특히 PHPBB는 디자인 품질에 대한 특히 훌륭한 기록을 가지고 있지 않기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top