#php #mysql #login
#php #mysql #аутентификация
Вопрос:
я использовал сценарий входа, который находится здесь http://www.phpeasystep.com/phptu/6.html скрипт работает нормально, и я, наконец, перехожу на страницу успешного входа в систему после ввода правильных данных.
но мне нужна помощь в том, как мне использовать это для всех страниц на моем сайте. какой заголовок я должен указывать на каждой странице, что я хочу быть защищенным паролем, а также что пользователю не нужно входить в систему несколько раз на веб-сайте, и сеанс должен быть сброшен в определенный период, который я могу упомянуть
я знаю, это может показаться глупым, но извините, я новичок и не разбираюсь в программировании.
Ответ №1:
вы захотите установить cookie / session при входе пользователя в систему, а затем проверить каждую страницу, установлен ли этот сеанс / cookie, и если он не перенаправляет их на страницу входа.
вот небольшой пример того, как настроить сеанс:
<?php
session_start();
$_SESSION['auth'] = "OKAY";
?>
и вот небольшой фрагмент для каждой страницы для проверки сеанса:
<?php
session_start();
if(!isset($_SESSION['auth']))
{
header("Location: your_login_page.php");
}
//display page here
?>
имейте в виду, что это очень простой пример.
надеюсь, это поможет!
Комментарии:
1. я ему тоже не сказал, я сказал, чтобы он поместил это на другие его страницы, к которым он хочет ограничить доступ
2. я знаю, что вы этого не сделали, но, поскольку вы написали «для каждой страницы для проверки сеанса», я подумал, что это может его смутить. Вместо страницы входа в систему вы могли бы сделать что-то вроде: if(isset($ _SESSION[‘auth’])) { заголовок(«Местоположение: your_main_page.php «); }
3. ах, кк я понял. извините за это.
4. ребята, мне очень жаль, но я совсем запутался. может кто-нибудь сказать мне, что все упомянуть на каждой странице, пожалуйста. и $ _SESSION [‘auth’] — это ‘auth’ переменная, которую я должен где-то упомянуть
5. @mmdel извините за задержку ответа. для страниц, доступ к которым вам необходимо ограничить, см. Второй фрагмент кода, вам необходимо, чтобы эти страницы проверяли переменную сеанса, которую ваша страница входа устанавливает при успешном входе в систему. что касается вашей страницы входа, вам нужно, чтобы она устанавливала переменную сеанса для других страниц для проверки успешного входа (см. Первый фрагмент кода). я надеюсь, что это поможет
Ответ №2:
Во-первых, убедитесь, что вы начинаете сеанс на каждой отдельной странице.
<?php
session_start();
// page code...
Затем вам нужно проверить и посмотреть, зарегистрирован ли текущий сеанс. В идеале, ваш сценарий входа установит для переменной сеанса значение true при успешном входе в систему, например, $_SESSION[‘logged_in’] . Поэтому в любое время, когда вы хотите проверить, вошел ли пользователь в систему, вам просто нужно это проверить. Если это false, вы можете перенаправить их на страницу входа, показать ссылку для входа и т. Д.
Во-вторых, некоторые пользователи захотят оставаться в системе во время сеансов. Для этого вам нужно установить как минимум два файла cookie. Один из них — это идентификатор пользователя пользователя, а второй — уникальный ключ autologin, который будет генерироваться при каждом входе в систему и сохраняться в базе данных. Если сеанс не зарегистрирован, но файлы cookie присутствуют, вы можете проверить и посмотреть, действителен ли ключ autologin. Если это так, пусть он автоматически регистрирует их.