1 Востаннє редагувалося Betterthanyou (30.10.2020 17:20:52)

Тема: Переадресація на сторінку реєстрації з будь-якої сторінки

Мені потрібно зробити переадресацію з будь-якої сторінки, на сторінку реєстрації якщо користувач не авторизувався

Ось приклад функції яка перевіряє чи користувач авторизований, якщо ні, то перенаправляє на pathTologinPage

function isLogged($pathTologinPage)
{
    global $db;
    
    $config = new PHPAuth\Config($db->pdo);
    $auth = new PHPAuth\Auth($db->pdo, $config);

    if (!$auth->isLogged()) {
        header('Location: ' . $pathTologinPage);
        exit();
    }
}

Визначити кореневу директорію не складно

define( 'ABSPATH', __DIR__  );

Але у якості параметру потрібно передавати веб-адресу до файлу, тому __DIR__ "не працює" - ERR_UNSAFE_REDIRECT

Я розробляю модуль який можна буде закинути в будь яку директорію, тобто якщо в мене локальний шлях http://localhost то мій модуль знаходиться за шляхом http://localhost/web2/phpBotTCW.
(а може бути http://localhost/phpBotTCW, http://localhost/somewebdir/phpBotTCW, http://localhost/web2 тобто будь-який)

Частина BotAdminPanel/login.html лишається завжди незмінна

мені потрібно дізнатися шлях до кореневої директорії у вигляді веб-адреси. Як це можна зробити ?

А потім з'єднаю
$pathTologinPage = __DIR_AS_URL__ . "BotAdminPanel/login.html"

2 Востаннє редагувалося flatliner (30.10.2020 21:40:45)

Re: Переадресація на сторінку реєстрації з будь-якої сторінки

Я з вашого дозволу розгляну ситуацію з боку фреймоврків, як в них це зазвичай робиться. Зазвичай в них на етапі завантаження визначається base_url. Він може бути заданий конкретною адресою через конфіг, або визначатися динамічно за допомогою $_SERVER['SERVER_NAME'].

Далі у фреймворків є зазвичай хелпери, які допомагають генерувати url або готові теги <a>, наприклад, так: \Uri::create('BotAdminPanel/login') або   \Html::anchor('BotAdminPanel/login', 'Login');

Подякували: Betterthanyou1