Отправляет email-рассылки с помощью сервиса Sendsay

PHP-песочница

  Все выпуски  

PHP-песочница


Php-«песочница»

Выпуск 7. Чтение из файла: функция fread.

Доброго времени суток, уважаемый подписчик. По эту сторону монитора Андрей Чернобай с рассылкой «PHP-песочница». Сегодня продолжим манипуляции с файлами.

Для чтения из файла есть две возможности. Рассмотрим одну из них – с помощью функции fread.

Функция fread позволяет считывать нужное число байтов из файла, связанного  с указателем файла. Записывается это так:

fread (указатель файла, число)

Прежде чем потренироваться с новой функцией, вернёмся к прошлому выпуску, где я предлагал вам самостоятельно добавить в форму поле для ввода e-mail’а и в reg.php – кода для записи e-mail’а в файл.

Я не просто так предлагал это задание, нам это понадобится, когда будем учиться отправлять сообщения на электронный адрес.
Сделали вы это или нет, а я сейчас приведу код для формы в index.php и для reg.php. Кто сделал – проверяйте.

Итак, форма регистрации на сайте:

<form action="reg.php" method="post" name="form1">
<p align="center">Введите в поле своё имя:<br>
<input name="name" type="text"></p>
<p align="center">Введите в поле свой e-mail:<br>
<input name="email" type="text"></p>

<p align="center">Введите в поле свой пароль:<br>
<input name="password" type="password"></p>
<p align="center"><input name="submit" type="submit" value="Зарегистрироваться"></p>
</form>

Файл reg.php:

<?php
if (($name == "") || ($password == "") || ($email == "")) // добавили проверку, заполнен ли электронный адрес
{
echo "<p>Форма заполнена не полностью! Вернитесь, пожалуйста, и заполните все поля формы!</p>";
exit ();
}
else
{
$newfile = fopen($name, "w");
fwrite ($newfile, $password);
fwrite ($newfile, "\n");
fwrite ($newfile, $email); // записали в файл e-mail
fwrite ($newfile, "\n"); // переход на новую строку
fclose ($newfile);
echo "<p>Поздравляем Вас, " .$name. ". Регистрация прошла успешно.</p>";
}
?>

Сохранили изменения в index.php и в reg.php. Обновили индексную страницу в браузере – в форме добавилось новое поле.

Проверьте, как это работает теперь: со всеми полями заполненными и с не заполненными. Полюбопытствуйте, что в папке сайта прибавилось…

А теперь считаем (от слова читать, а не считать) данные из файла с помощью функции fread и выведем результат тут же на страницу.

Вернитесь в reg.php, добавьте код:

<?php
if (($name == "") || ($password == "") || ($email == ""))
{
echo "<p>Форма заполнена не полностью! Вернитесь, пожалуйста, и заполните все поля формы!</p>";
exit ();
}
else
{
$newfile = fopen($name, "w");
fwrite ($newfile, $password);
fwrite ($newfile, "\n");
fwrite ($newfile, $email);
fwrite ($newfile, "\n");
fclose ($newfile);
echo "<p>Поздравляем Вас, " .$name. ". Регистрация прошла успешно.</p>";
}
$file = fopen($name, "r"); //открываем файл имени пользователя для чтения
$n = fread ($file, 100); //считываем из файла, на который указывает переменная $file, сто байтов. Здесь я задал число намеренно значительно большее, чем возможный пароль, чтобы вывести его на страницу весь. Вы же можете поэкспериментировать с разными числами, например, с 1 или 2, а пароль задать длиннее…
echo "<p>Ваш пароль: " .$n. ". Сохраните его.</p>"; //выводим пароль на страницу и предлагаем сохранить его в укромном месте
fclose ($file); //закрываем файл

?>

Сохраним изменения; обновим страницу в браузере; заполним форму; полюбуемся на результат. Если нет ошибок, должно быть выведено сообщение:

«Поздравляем Вас, … (имя). Регистрация прошла успешно. Ваш пароль: … (пароль) … (e-mail). Сохраните его».

С одной стороны, всё работает. Однако, согласитесь, фраза «Ваш пароль: … (пароль) … (e-mail)» выглядит несколько коряво: сказано «Ваш пароль», а следом и «мыло» приписалось. Над этим поработаем в дальнейшем.

А пока всё. Успехов. До встречи в ближайшем выпуске.

Андрей Чернобай
kapitansg@yandex.ru


"PHP+MySQL для начинающих" >>>>>

Как стать Веб-мастером >>>>>

 



В избранное