PHP

Авторизация

Сейчас мы и узнаем, тот ли наш посетитель, за кого себя выдает. Алгоритм наших действий: сначала показываем посетителю форму авторизации, предлагаем написать в ней логин и пароль и отправить на проверку. Затем, если посетитель правильный (есть такой в системе с таким же логином и паролем) допускаем его к сокрытому содержимому, а если нет - сообщаем, что вход закрыт. Формы для общения с посетителем будем формировать динамически, поэтому код скрипта выглядит немного необычно:

Теперь по порядку. Сначала из формы получаем логин и пароль, отстригая лишние пробелы. Кроме этого - еще одно значение, которое помещаем в переменную $pressed. Теперь скрипт будет знать, нажималась ли кнопка в форме:

$login=trim($_POST['login']);
$password=trim($_POST['password']);
$pressed=$_POST['pressed'];

Дальше строкой

session_start();

открываем сессию. Сессия в PHP позволит скрипту записывать и передавать другим скриптам переменные в течении времени, пока открыта сессия. После этого:

$log=$login."|".$password;
$fl = @fopen ("logs", "r");
$dat_log = @fread ($fl, filesize("logs"));
if (strstr($dat_log,$log)){$auth="passed";}else{$auth="";}

полученные от пользователя логин и пароль объединяем в строку, открываем файл, в котором хранятся данные зарегистрированных посетителей (только для чтения) и проверяем, есть ли там такой логин и пароль. Для проверки используем функцию strstr(), чтобы различить строчные и заглавные буквы. Если логин и пароль совпадают с зарегистрированными, присваиваем переменной $auth значение passed, если нет - записываем в нее пустоту. И после этого значение переменной $auth записываем в переменную сессии pw:

$_SESSION['pw']=$auth;

Далее: если посетитель нажимал кнопку отправки данных:

if($pressed){

и если он успешно прошел авторизацию, показываем ему форму с единственной кнопкой, нажав на которую, он попадет туда, куда так хочет попасть (у нас - это страница page.php):

а если нет - то сообщаем, что входа нет:

Последняя фигурная скобка означает конец проверки условия нажатия кнопки и, если кнопка не нажималась, показываем форму авторизации:

Теперь - как устроена страница, куда после авторизации придет посетитель:

Проверка авторизованности происходит в самом начале - открываем скрипту доступ к текущей сессии, записываем в переменную $pw пустоту (а можно и не записывать) и извлекаем из сессии ее значение:

<?php
session_start();
$pw="";
$pw=$_SESSION['pw'];

Потом - проверка. Если авторизация не пройдена (значение переменной $pw отличается от passed), сообщаем об этом пользователю красными буквами и завершаем работу скрипта (если не ... - то мрем с последним словом, которое в скобках и кавычках):

Проверяем работу. Похоже? Идем дальше.

Рейтинг@Mail.ru