Уроки PHP для начинающих


Проверка имени пользователя и пароля

Если посетитель уже регистрировался на нашем сайте, нужно проверить его имя пользователя и пароль, а затем предоставить дополнительные услуги на сайте. Такими услугами может быть, например, доступ к эксклюзивной либо к платной информации, к настройкам аккаунда и т. п.

В этой статье я расскажу, как создать скрипт проверки имени пользователя и пароля на языке PHP.

Как происходит проверка пользователя?

На странице сайта есть форма, в которую пользователь вводит  свои данные: имя, пароль, иногда e-mail. Затем нажимает кнопку, программа сравнивает введенные в форму данные с теми, что уже есть.

Если данные сошлись – предоставляется доступ к закрытому разделу. Если таких данных нет – следует предложение или правильно заполнить форму или зарегистрироваться.

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

Сначала создадим форму.

Открыли в  Блокноте index.php. Ниже закрывающего тега </form> формы для регистрации пишем код, в котором создаём новую форму:


<!—форма проверки зарегистрирован ли пользователь-->
<p align=”center”><strong>Проверка пользователя:</strong></p>
<form action=”testreg.php” method=”post”>
<p align=»center»>Введите в поле своё имя:<br>
<input name=”name” type=”text”></p>
<p align=»center»>Введите в поле свой пароль:<br>
<input name=”pass” type=”password”></p>
<p align=”center”><input name=”submit” type=”submit” value=”Войти”></p>
</form>

</body>
</html>

Сохраним изменения; обновим индексную страницу в браузере. Появилась форма для проверки пользователя:

Уроки php для начинающих

Обратите внимание на строку:

<form action=”testreg.php” method=”post”>

В ней указан файл-обработчик формы: testreg.php. Создадим этот файл.

Создайте в Блокноте новый файл, сохраните его под именем testreg.php (Файл – Сохранить как… – Имя файла: testreg.php – Тип файла: все - Сохранить)

Пишем в него код:

<?php
/*проверяем, заполнены ли все поля формы*/
if (($name == "") || ($pass == ""))
/*если не заполнены, выводится сообщение*/
{
echo "<p>Форма заполнена не полностью! Вернитесь, пожалуйста, и заполните все поля формы!</p>";
exit ();
/*и программа останавливается*/
}

В этом фрагменте мы использовали уже знакомую нам проверку, заполнены ли все поля формы.

Пишем дальше:

/*если все поля формы заполнены, следуем дальше*/
else
{
$rfile = fopen ($name, "r");
/*открываем для чтения файл, имя которого совпадает с именем из формы*/
$data = file ($name);/*читаем из открытого файла*/

Здесь тоже всё известно по прошлому уроку: открываем файл, если таковой имеется, и читаем данные из него в массив $data.

А вот дальше новое.

При записи в файл мы использовали код перехода на новую строку ("\n"). Перед тем как сравнивать пароли из файла и из формы, этот код перехода на новую строку следует удалить.

Для удаления перехода на новую строку применяют функцию strtok(строка, символ).

Пишем далее следующий код:

$newstr = strtok ($data[0], "\n"); /*удаляем из первого элемента массива data код перехода на новую строку*/

И теперь нужно сравнить первую строку открытого файла с паролем из формы. Для сравнения строк есть функция

strcmp (строка1, строка2)

Добавляем следующий код:

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

if (strcmp ($newstr, $pass) == 0)
{
echo "<p>У Вас есть права зарегистрированного пользователя.</p>";
}
else
{
echo "<p>Ведённый пароль не верный.</p>";
}
}

?>

Важно! Не забывайте тег, закрывающий php-код.

Ещё напомню, что такими знаками  /**/  обозначаются пояснения, комментарии к коду. Комментарии на страницу не выводятся и в работе скрипта не участвуют.

Сохраните изменения в файле. Откройте индексную страницу в браузере, обновите её.

Вводим в форму имя и пароль, жмём кнопку и смотрим результат. Попробуйте разные варианты: когда все поля формы заполнены  правильно; когда не заполнены; когда пароль введён заведомо не верный…

А я на этом прощаюсь до нового урока.

Успехов >>>>>>>

Автор: Андрей Чернобай

P. S. Подпишитесь на безплатную рассылку Вокруг Сайта и получайте на свой электронный адрес новые уроки по созданию сайта.

Оставьте свой отзыв о статье:



Введите цифровой код с картинки*:


Комментарий добавил(а): трумтурум
23-10-2012
19 час. 54 мин.

Комментарий:
1. Лучше проверять на пустоту строки функцией empty();2. Автор вообще по ходу не знает ни чего о сессиях, и их применении при успешной рег. и аутент.3. htmlspecialchars() для кого придумали??? trim() для кого придумали??? Статья на уровне 5-го класса школы для даунов.

Ответ: Вообще-то, согласно правилам сайта, написанным мною же (http://vokrug-saita.ru/pravila.php), мог бы проигнорировать (и впредь буду). Но отчего-то хочется задать риторический (!) вопрос (не трумтуруруму, а так, вообще): как назвать уникума, мнящего себя не дауном (судя по тексту комментария), но не понимающего даже русского (а не программистского) текста. Учись читать. Читать - прочитывать каждое (то есть, не пропуская ни одного!) слово, осознавая как смысл каждого слова в отдельности, так и смысл всего текста в целом. Ибо на странице как минимум два раза указано: 1) для кого статья; 2) для чего статья. Правда, понятно это только... не дауну.

Новое на сайте

Другие статьи...

Видеокурсы

Рассылки

"Вокруг Сайта"
подпишитесь и получайте на свой e-mail уроки, книги, статьи, скрипты, а также подарки и скидки на товары, продаваемые с сайта

SmartResponder.ru
Ваше имя: *
Ваш e-mail: *

"PHP-песочница"
- PHP для начинающих: уроки с подробным анализом скриптов, необходимых для вашего сайта:

PHP-песочница
Подписаться письмом

Разделы Сайта