Сейчас мы разработаем приложение "Гостевая книга на PHP".
Сообщения будут храниться в файлах, которые расположены в директории RECORDS (позже мы разработаем вариант гостевой книги, основанный на хранении сообщений в базе данных). Код размещен в двух файлах: index.php (отображение сообщений) и addrec.php (добавление сообщений, их проверка и запись в файл).
Итак, создайте файл addrec.php и в той же директории, в которой расположен этот файл создайте директорию RECORDS.
Сначала проверяем, ввел ли пользователь данные и правильно ли он их ввел:
<?$error = "";$action = $HTTP_POST_VARS["action"];if (!empty($action))
{$name = trim($name);$msg = trim($msg);if (empty($msg)) // если не введено сообщение{$action = "";$error = $error."<LI>Вы не ввели сообщение\n";
}if (empty($name)) // если не введено имя{$action = "";$error = $error."<LI>Вы не ввели имя\n";
}if (!empty($email))/* если введен e-mail, то проверяем с помощью регулярного выражения
правильность ввода */{if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{$action = "";$error = $error."<LI> Неверно введен е-mail.&nbsр Введите e-mail
в виде <i>softtime@softtime.ru</i> \n";
}
}
Теперь обрабатываем введенный пользователем текст функциями удаления HTML-тегов и обратных слешей:
В нашей гостевой книге поддерживается полужирное начертание, курсив, подчеркивание, верхние и нижние индексы. Для того, чтобы пользователь мог, к примеру, выделить блок текста в сообщении курсивом, его необходимо заключить в теги <i></i> и т.д. Поэтому для после того, как текст введен, нужно заменить эти искусственные теги на их реальное HTML-представление:
Открываем файл и добавляем в него, введенную пользователем информацию:
/* создаем файл с именем вида "rec.+время добавления сообщения" */$file = fopen("records/rec.".time(),"w");// записываем информацию в файл, по одной строчке на каждое полеfputs($file,$name."\n");fputs($file,$city."\n");fputs($file,$email."\n");fputs($file,$url."\n");fputs($file,$msg."\n");// закрываем файлfclose($file);
Вызываем скрипт index.php, ответственный за отображение сообщений: