PHP, Препятствуйте тому, чтобы пользователи получили доступ к странице, в то время как не вошел в систему?

HGE (C++, DirectX)

Очень простой пользоваться 2D библиотекой разработки игр.

7
задан Sam152 20 October 2009 в 13:06
поделиться

4 ответа

Это работает следующим образом:

  1. Запуск сеанса: session_start ()
  2. Если сеанс ["user"] == null, перенаправить на страницу входа, в противном случае продолжить.
  3. ] На странице входа запросите у пользователя пароль, используя форму
  4. Разместите эту форму на странице входа в систему
  5. Проверьте свою службу аутентификации (например, таблицу в mysql), если пользователь авторизован
  6. Если да, Session ["user"] = $ userName, перенаправить пользователя на страницу. Если нет, запросить пароль еще раз

Конечно, все это очень и очень просто. В своем сеансе вы можете сохранить сложный пользовательский объект или что угодно. Удачного кодирования.

11
ответ дан 6 December 2019 в 06:14
поделиться

Как заметил Светлозар Ангелов, следующий код будет работать хорошо:

if (!isset($_SESSION['nID']))
    header("Location: login.php");

Однако .. на самом деле это не защитит страницу от пользователей, которым действительно нужен доступ. Вам необходимо внести некоторые изменения:

if (!isset($_SESSION['nID']))
{
    header("Location: login.php");
    die();
}

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

Также следует отметить, что $ _SESSION ['nID'] можно заменить на любую другую переменную, которую вы используете для хранения имен пользователей или идентификаторов.

9
ответ дан 6 December 2019 в 06:14
поделиться

Когда он входит в журнал - сохраняет переменную сеанса. Затем в начале каждой страницы

session_start();
if (!isset($_SESSION['nID']))
    header("Location: login.php");

Если логин в порядке

session_start();
$_SESSION['nID'] = 1; //example
8
ответ дан 6 December 2019 в 06:14
поделиться

Выполните следующие действия:

Создайте страницу login.php, доступную для всех, где пользователь вводит свое имя пользователя и пароль в форме. Эта форма должна быть отправлена ​​на сам login.php. (действие = 'login.php'). Также включите в форму скрытую переменную, которая отслеживает, была ли форма отправлена.

Если скрытая переменная установлена, проверьте, существует ли имя пользователя ( $ _ POST ['user'] ) в вашей БД. , и что пароль совпадает с именем пользователя. Если это так, сохраните имя пользователя в переменной $ _SESSION следующим образом:

$ _ SESSION ['username'] = $ _POST ['user'];

Если это не так, перезагрузите login.php следующим образом:

echo 'header ("login.php")'; // Вы не должны были ничего повторять до этого

Теперь включайте login.php в каждую создаваемую вами страницу пользователя.

1
ответ дан 6 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: