phpBB3 세션 및 데이터를 외부 웹 사이트에 통합하려고합니다. 나는 이것에 대해 official resource을 따라 갔고 또한 helpful tips을 읽었지 만, 내 문제에 대한 구체적인 해결책을 찾지 못했습니다. 모든 일을 할 것, 그리고 내가 좋아하는 코드로 사이트의 데이터를 사용할 수 있습니다, 루트 경로가 잘 구성되어phpBB 세션 통합 : 기능에서 데이터 사용
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../../forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>
: 내 사이트에
나는 다음과 같은 코드를 포함하는 phpbb.php 포함 이 (예) :
if ($user->data['user_id'] == ANONYMOUS)
{
$tpl = new USPTemplate();
$tpl->load("error_nologin.tpl");
$tpl->display();
}
else
{
$tpl = new USPTemplate();
$tpl->load("review_submit.tpl");
$tpl->assign("test",'Thanks for logging in, ' . $user->data['username']);
$tpl->display();
}
이것은 내가 사용자가 포럼에 로그인되어 있는지 여부에 따라 사용하고 템플릿 시스템과 다른 템플릿을로드 할 것이고, 그 경우, 그것은 또한 자신의 이름을 인쇄합니다. 이 모든 것은 잘 작동합니다.
내가 함수 사용하려고하면 문제는 그러나,이다 :
function print_login() {
if ($user->data['user_id'] == ANONYMOUS)
{
return "Not currently logged in. [ Log in ]";
}
else
{
if ($user->data['user_colour'] != null)
{
return "Hello, <b style=\"color: #".$user->data['user_colour']."\">".$user->data['username']."</b>. [ Log out ]";
}
else return "Hello, ".$user->data['username'].". [ Log out ]";
}
}
을 나는 이렇게 할 경우, 함수는 심지어 내부의 phpbb.php가 포함 된 페이지에있는 경우에도 phpbb.php 자체에서는 세션이 인식되지 않고 결과는 항상 다음과 같습니다.
안녕하세요. [로그 아웃]
왜 함수가 phpBB 데이터에 액세스 할 수 없습니까?
<?php
$a = 2;
function test() {
echo $a;
}
?>
이 작동하지 않기 때문에
흠, 내가 ([여기] 비슷한 것을 읽은 : 당신의 기능은 내부의 전역 변수를 선언해야 작동하기 위해서는
/article/phpbb3-cross-site-sessions-integration /) : "전역 변수/전역 변수를 포함하도록 함수 또는 객체를 통해 로그인하면 $ auth 변수/클래스가 함수/객체에서 사용 가능합니다." 그러나 나는 그것을 얻지 않고 "global $ user;"를 추가했다. 줄 또는 추가 "글로벌 $ auth"줄은 아무 것도하지 않았습니다. 함수에 인수를 추가하거나 $ user를 전달하지도 않았습니다. 결과는 동일하게 유지됩니다. : X – ividyon
phpbb에 포함 된 문서에서 사용자 클래스를 찾을 수 있습니까? –
꽤 길기 때문에 여기 pastebin에 넣습니다. http://pastebin.com/JL5kvrYH 여기에도 몇 가지 문서가 있습니다 : https://wiki.phpbb.com/User_class – ividyon