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

PHP-песочница

  Все выпуски  

PHP-песочница Выпуск 6


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

Выпуск 6. Работа с файлами в php: функции fopen, fwrite, fclose.

Здравствуйте, вновь Андрей Чернобай с выпуском рассылки «Php-песочница».

Данные, полученные из формы регистрации (см. Выпуск 5 рассылки), лучше сохранить в отдельной файле, чтобы пользователю не приходилось каждый раз регистрироваться заново.

В этой статье познакомимся с несколькими функциями для работы с файлами, а в следующей – применим теорию на практике.

Что значит «работать с файлами» в php? В общем-то, практически то же, что мы делаем с файлами на своём компе в операционной системе Windows: открывать, читать, добавлять/удалять информацию, копировать, закрывать…

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

Чтобы начать с файлом работать, его нужно открыть.

Для открытия файла есть функция fopen (имя_файла, режим). То есть, функция здесь – fopen, а то, что в скобках, - параметры функции. Параметр «имя_файла» говорит сам за себя: это не что иное как имя файла, который нужно открыть. Параметр «режим» указывает на действие, для которого открывается файл: только чтение (обозначается буквой r); чтение и запись (обозначается буквой w).

Обратите внимание: если для записи открывается несуществующий файл, он будет создан автоматически.

Для записи дынных в файл применяют функцию fwrite (указатель файла, данные), где fwrite – собственно функция, в скобках – её параметры.

Для закрытия файла используют функцию fclose (указатель файла), где fclose – функция, а в скобках её параметр, указывающий на файл, который нужно закрыть.

Возможно, Вы обратили внимание, что для функции fopen в скобках написано «имя_файла», а для fclose и  fwrite«указатель файла»?

Это не опечатка и не одно и то же. Имя файла – это настоящее имя, например, у  файла index.php имя index.

А что же тогда указатель файла?

Дело в том, что данные из файла читают не «просто так», а всегда помещают их в какую-нибудь переменную. Зачем? Да ведь переменной манипулировать проще, чем данными, которых в открытом файле может быть очень не мало.

Чтобы считать данные из файла в переменную, записывают так:

$имя_переменной = fopen (имя_файла, режим);

Вот эта-то переменная $имя_переменной и есть указатель файла, который мы можем в дальнейшем подставлять в функции fclose и  fwrite или ещё куда.

Чтобы Вы не заскучали, ограничимся пока этой теорией. И перейдём к практике.

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

Работа с файлами в php: продолжаем создавать скрипт регистрации на сайте.

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

Откройте в блокноте файл reg.php; он выглядит так:

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

Добавим новый код (зелённым шрифтом):

<?php
if (($name == "") || ($password == ""))
{
echo "<p>Форма заполнена не полностью! Вернитесь, пожалуйста, и заполните все поля формы!</p>";
exit ();
}
else
{
$newfile = fopen($name, "w"); //открыли файл, который носит имя, введённое пользователем в форму для регистрации. Файл открыли для чтения и записи, о чём говорит "w".
fclose ($newfile); //закрыли файл, на который указывает переменная $newfile

echo "<p>Поздравляем Вас, " .$name. ". Регистрация прошла успешно.</p>";
}
?>

Важно! Обратите внимание на точку с запятой после каждой строки!

Сохраним изменения в reg.php, перейдём в браузер, обновим страницу. Заполните поля формы, кликните «Зарегистрироваться».
Во-первых, появится известное нам поздравление об успешной регистрации. Во-вторых, зайдите в папку, где помещаются файлы вашего сайта: там добавился новый файл именем зарегенного пользователя.

Можете открыть этот файл с помощью Блокнота и убедиться, что он пуст. А нам желательно, чтобы в него записывались данные о пользователе. Займёмся этим.

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

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

fclose ($newfile);
echo "<p>Поздравляем Вас, " .$name. ". Регистрация прошла успешно.</p>";
}
?>

Сохраним изменения в reg.php и обновим страницу в браузере. Заполните форму, кликните по нужной кнопке, порадуйтесь успешной регистрации. Затем сходите в папку сайта и убедитесь, что появился новый файл с именем зарегенного пользователя. А открыв файл в Блокноте, убедитесь, что в него записан теперь и пароль. Что и требовалось.

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

Успехов. И до встречи в следующем выпуски рассылки «PHP-песочница».

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


В избранное