Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Глава 33. Практическое применение РНР

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

• гостевая книга;

• оптимизатор кода HTML.

33.1. Гостевая книга

На большинстве сайтов, если не сказать почти на всех, присутствуют так называемые гостевые книги. И если вы, сделав свой сайт, тоже решили усовершенствовать его таким полезным скриптом, то сейчас мы поможем вам понять принцип создания такой «книги».

Самое главное в гостевой книге — это определиться, какие поля для заполнения вы предложите посетителям сайта. В большинстве гостевых книг это «Имя», «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);

/* кавычки можно написать как &lt; и &gt;, это мы тоже предусмотрим */

$msg=eregi_replace("&lt;","",$msg);

$msg=eregi_replace("&gt;", "",$msg); $email=eregi_replace("&lt;", "",$email); $email=eregi_replace("&gt; ","",$email); $name=eregi_replace("&lt;", "",$name);

$name=eregi_replace("&gt;", "",$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") ?>

Теперь все готово для проверки работоспособности скрипта. Вы можете загрузить все это на сервер (если ваша страница в Интернете) или проверить работу скрипта на локальном сервере. Если вы все сделали правильно, то все будет работать. Если что-то не получилось, что-то не работает, просмотрите главу еще раз и найдите ошибку.

<< Предыдущий параграф Следующий параграф >>
Оглавление