Страница, защищенная логином, не требует авторизации для доступа - PullRequest
0 голосов
/ 16 февраля 2012

Я написал этот скрипт, чтобы пользователи, которые не вошли в систему, не могли просматривать определенные страницы. Я пытался заставить его работать, но без радости. Буду очень признателен, если кто-нибудь скажет мне, что не так.

<?php

session_start();
require_once ("ConnectToMySql.php");

if (!isset($_SESSION['username']))
{
    header("location:../Login/LoginForm.php");
}
?>

1 Ответ

0 голосов
/ 16 февраля 2012

Прежде всего, давайте проверим, аутентифицирован ли пользователь:

<?php

session_start();
var_dump($_SESSION); // print all the session to see if $_SESSION['username'] is set
exit;
...

Если пользователь вошел в систему, перезапустите браузер, чтобы завершить сеанс.(Вы должны перезапустить браузер, недостаточно закрыть эту вкладку)

Если $_SESSION пуст, пользователь не вошел в систему, удалите первые тестовые строки и посмотрим, перейдет ли выполнение кфункция header:

if (!isset($_SESSION['username']))
{
    echo "User will be redirected";
    exit;
    header("location:../Login/LoginForm.php");
}

Если все идет хорошо, это означает, что перенаправление не работает.Обратите внимание, что если был отправлен какой-либо вывод, заголовки больше не могут быть отправлены в браузер.Если это так, вам нужно проверить ваши файлы (включая файлы, такие как ConnectToMySql.php) для любого вывода.Частой ошибкой является добавление пробела после закрытия тега php ?> в файле конфигурации, и его очень сложно найти и отладить.Простой способ избежать этого - никогда не помещать конечный тег php ?> в файлы, содержащие только PHP.

В зависимости от этих тестов вы можете по крайней мере выяснить, что не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...