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


Проверка существования файла: функция file_exists

В скрипте, созданном в прошлом уроке, есть недостаток: если ввести имя пользователя, который не регился на сайте, выведется вот такое сообщение:

Warning: fopen(имя, которого нет): failed to open stream: No such file or directory in z:\home\php\www\testreg.php on line 12
Warning: file(имя, которого нет): failed to open stream: No such file or directory in z:\home\php\www\testreg.php on line 13
Ведённый пароль не верный.

Здесь говорится, что, дескать в строках 12 и 13 мы хотим открыть файл, которого не существует. Это естественно, нельзя открыть то, чего нет. Но и такие сообщения – не совсем то, что хочется видеть на своём сайте. Вывод: нужно усовершенствовать скрипт, чтобы при неверном имени выводилось что-то более осмысленное и красиво оформленное. Например, предложение ввести имя внимательней, войти под своим именем и т. п.

В этом уроке мы это и сделаем.

Проверить существование файла очень легко. Для этого есть функция file_exists(имя файла).

Создадим условие, используя хорошо известные нам операторы if – else (ссылка).

Добавим в testreg.php новый код:

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

{
$rfile = fopen ($name, "r"); /*открываем для чтения файл, имя которого совпадает с именем из формы*/
$data = file ($name);/*читаем из открытого файла*/
$newstr = strtok ($data[0], "\n"); /*удаляем из первого элемента массива data код перехода на новую строку*/
/*так как пароль находится в первой строке открытого файла, то нужно сравнить пароль из формы с этой первой строкой*/
if (strcmp ($newstr, $pass) == 0)
{
echo "<p>У Вас есть права зарегистрированного пользователя.</p>";
}
else
{
echo "<p>Ведённый пароль не верный.</p>";
}
}
}
?>

Обращаю внимание на ещё одну закрывающую фигурную скобку перед тегом закрытия скрипта.

Сохраним изменения; обновим страницу в браузере. Введём заведомо неверное имя, а пароль – всё равно какой. Если у Вас всё правильно в скрипте, выводится сообщение: «Имя пользователя указано не верно. Заполните форму внимательно или зайдите на сайт под своим именем».

Вот и всё, о чём я хотел рассказать в этой статье.

Успехов.

Идём дальше >>>>>

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

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

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



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

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

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

Видеокурсы

Рассылки

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

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

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

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

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