Рассмотрим несколько несложных примеров скриптов, которые помогут вам лучше понять концепцию языка РНР и научиться реализовывать свои идеи. В этой главе рассмотрены следующие вопросы:
• оптимизатор кода HTML.
На большинстве сайтов, если не сказать почти на всех, присутствуют так называемые гостевые книги. И если вы, сделав свой сайт, тоже решили усовершенствовать его таким полезным скриптом, то сейчас мы поможем вам понять принцип создания такой «книги».
Самое главное в гостевой книге — это определиться, какие поля для заполнения вы предложите посетителям сайта. В большинстве гостевых книг это «Имя», «E-mail», «URL» домашней странички и, конечно, само сообщение (или какой-либо комментарий). Создадим форму для гостевой книги (рис. 33.1).
Рис. 33.1. Полученная форма
<form name="form1" method="post" action="guestbook.php"><br>
<font face="Tiraes New Roman, Times, serif" size="3">
Имя:<input type="text" name="name"><br>
<br>E-mail: <input type="text" name="email"><br>
<br>URL: <input type="text" name="url"><br>
<br>Сообщение: <textarea name="msg" cols="35" rows="4" wrap="VIRTUAL"></textarea></font><br>
<br><p align="center"><input type="submit" name="Submit" value="Отправить">
</p>
</form>
Можно сделать эту форму в таблице, чтобы улучшить ее внешний вид, добавить другие поля и т. д., но тогда придется подредактировать код скрипта.
Описывать полностью структуру формы не будем, подробное описание всех составляющих формы можно прочесть в предыдущих главах, а сразу перейдем к рассмотрению
Итак, мы создали страницу с формой и назвали ее, например, guestbook.htm. На этой же странице будут выводиться новые сообщения. Скрипт будет отвечать за чтение данных из формы, их обработку, очистку от HTML-тегов и запись в файл с сообщениями (назовем его guest.txt). Новичку в РНР, на первый взгляд, все это может показаться очень сложным, но стоит приглядеться, и все становится на свои места. Через 15 минут вы сами сможете писать свои собственные гостевые книги.
/* мета-тег возвращает нас на страницу с гостевой книгой */
<meta http-equiv="refresh" content="0;URL=guestbook.htm">
/* здесь начинается скрипт РНР */
<?php
/* определяем файл, в который будут записываться новые сообщения */
$files = "guest.txt";
/* если посетитель не захотел оставлять свой E-mail, напишем "нет" */
if ( $email=="" ) {$email="нет"; }
/* здесь начинается раздел скрипта, убирающий кавычки < и >, чтобы теги HTML не отобразились в гостевой книге */
$msg=eregi_replace("<","",$msg);
$msg=eregi_replace(">", "", $msg);
$email=eregi_replace("<","",$email);
$email=eregi_replace(">","",$email) ;
$name=eregi_replace("<","",$name);
$name=eregi_replace(">","",$name);
/* кавычки можно написать как < и >, это мы тоже предусмотрим */
$msg=eregi_replace("<","",$msg);
$msg=eregi_replace(">", "",$msg); $email=eregi_replace("<", "",$email); $email=eregi_replace("> ","",$email); $name=eregi_replace("<", "",$name);
$name=eregi_replace(">", "",$name);
/* обрезаем каждую переменную на случай, если кто-то захочет побаловаться */
$msg=substr ($msg,0,499);
$email=substr($email,0,39);
$name=substr($name,0,39);
/* эта часть кода работает только при заполненных полях "Имя" и "Сообщение" * /
/* она как раз и отвечает за запись данных в файл */
if ($msg != "" && $name != "") {
$time = Date("M d");
/* создаем переменную, которая будет записана в файл */
$zapis = "n<hr><br><b>$time<br><br>
От:</b>$name<br>
<b>E-mail: </b><a href="mailto: $email ">$email</a><br>
<b>Сообщение: </b>$msg<br><br>";
/* открываем файл с указанным в начале скрипта названием и записываем в него переменную $zapis */
$fp = fopen($files, "a+");
$fw = fwrite($fp, $zapis);
fclose($fp);
}
Вот и все. Сложно? На первый взгляд, может быть. Несколько практических применений — и все придет в норму.
Последняя наша задача совсем проста в своей реализации. Необходимо вставить в нужном месте файла guestbook.htm скрипт, который будет выводить на экран записи из файла guest.txt. Этот скрипт будет выглядеть так:
<?php include("guest.txt") ?>
Теперь все готово для проверки работоспособности скрипта. Вы можете загрузить все это на сервер (если ваша страница в Интернете) или проверить работу скрипта на локальном сервере. Если вы все сделали правильно, то все будет работать. Если что-то не получилось, что-то не работает, просмотрите главу еще раз и найдите ошибку.