/ / PHP Неможливо змінити переадресацію () - php, laravel, phpbb, phpbb3

PHP Неможливо повторно заявити перенаправлення () - php, laravel, phpbb, phpbb3

У мене працює Laravel додаток, а також форум PhpBB. Я намагаюся зробити перевірку, щоб перевірити, чи користувач увійшов у систему, використовуючи цю функцію PHP, яка є AppHelpers

<?php
namespace AppHelpers;

ini_set("display_startup_errors",1);
error_reporting(-1);
error_reporting(E_ALL);
ini_set("display_errors", "On");

define("IN_PHPBB", true);
$phpbb_root_path = "/home/clashdata/public_html/forum/";
$phpEx = "php";
include($phpbb_root_path . "common." . $phpEx);

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

function isLoggedIn(){
global $user;
if($user->data["is_registered"]){
return true;
}else{
return false;
}
}

?>

І я використовую цей код у своєму контролері Laravel як if заява if(phpbb::isLoggedIn()){

Але результат - це те, що я отримую тут: http://clashdata.tk/search/livesearch?clanname=clans&location=&trophies=0&minmembers=1&maxmembers=50&clanlevel=0

Як це відбувається і що я можу зробити, щоб виправити це?

Відповіді:

0 для відповіді № 1

Я не зовсім впевнений, яка версія LaravelВи зараз використовуєте .. У відділенні 5.2 (а також у старих гілках ..) є умова навколо функції переадресації, яка перевіряє, чи функція вже існує. Здається, ви видалили цю частину.

Повернутися до вашої проблеми: Я перевірив обидві функції переадресації, і якщо ви можете безпечно видалити одну з них. Здається, вони обоє роблять більше, ніж просто дурне переспрямування, і я "не впевнений, чи це", крім того, щоб замінити одного з іншого. Я "не тестую це, але якщо ви хочете спробувати його, слід видалити функцію перенаправлення phpbb", оскільки частини цієї функції частково реалізовані шляхом перенаправлення laravels.

Оскільки я не впевнений, що ви використовуєте повне програмне забезпечення для борту, а частини яких залежать від особливої ​​поведінки переадресації, я не можу сказати, що це збережеться.

Якщо ви хочете працювати, ви можете зробити ценаступний трюк. Перейменуйте існуючі функції переадресації та створіть власну проксі-функцію переадресації, яка викликає або phpbb "s, або laravels. Але як визначити, яку функцію слід викликати? debug_backtrace твій друг. Використовуючи цю функцію, ви можете визначити ім'я файлу викликових функцій і зробити це, щоб ви знали, чи викликається функція з phpbb чи laravel.

function redirect() {
$args = func_get_args();
$trace = debug_backtrace();
$calling = $trace[1];
if ($calling === NULL || strpos($calling["file"], "laravel/framework/") !== false) {
return call_user_func_array("redirect_laravel", $args);
}
return call_user_func_array("redirect_phpbb", $args);
}