Код для пересылки браузера, если пользователь не вошел в систему (проверка, установлена ​​ли переменная сеанса), не запускается - PullRequest
0 голосов
/ 29 апреля 2011

Я пытаюсь настроить пересылку всех своих страниц на экран входа в систему, если пользователь не вошел в систему с использованием данных сеанса, однако он не работает.Когда пользователь щелкает ссылки, он просто переходит к новой ссылке, а не перенаправляется на страницу входа.Я знаю, что данные сеанса очищаются, так что это не проблема.Вот соответствующий код:

Заголовки страниц:

 <?php
    session_start();
    if(!isset($_SESSION['answer']))
    {
        header('Location: /?login');
        exit;
    }?>

Объявление сеанса входа в систему:

 $answer = mssql_fetch_array($res);
    $_SESSION['answer']=$answer[0];

Выход из системы:

<?php
session_start();
session_destroy();
if(!isset($_SESSION['answer']))
{
    header('Location: /?login');
    exit;
}
?>

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

session_destroy не отменяет глобальные переменные.

Если вам нужно безоговорочно перенаправить сразу после уничтожения сеанса - просто удалите isset, он вам не нужен.

1 голос
/ 29 апреля 2011

В ответ о том, как это сделать на каждой другой странице:

Я использую обязательные в начале каждой защищенной страницы php на моем сайте.Я называю это «auth.php».Если пользователь не вошел в систему (проверьте с помощью переменной сеанса), auth.php перенаправит его на страницу входа.

Если у вас есть заголовок, это отличное место для его размещения (если он включен только в защищенный раздел, который у меня).

Моя страница выхода из системы уничтожает сеанс и отправляет егона страницу входа.

...