Конспект по начертательной
геометрии
Начертательная геометрия
Практикум решения задач
Геометрические основы
Инженерная графика
ЕСКД
Каталог графических примеров
Архитектура ЭВМ
Информатика и
информационные технологии
Конспект лекций по ядерной физике
ТОЭ
Физические законы механики
Волны оптика
Электротехника
Общая электротехника
Решение задач по
электротехнике
Язык программирования
MATLAB
Расчет электрических цепей
Моделирование цепей
переменного тока
Дифференциальные уравнения
Вычислительныe системы
Вычислительные комплексы
Электротехнические материалы
Теория конструктивных
материалов
Учебник PHP
Турбо Паскаль
Встроенный ассемблер
Turbo Vision
Java
Примеры программирования
на Java
Примеры скриптов
История искусства 18-19 век
Проект: гостевая книга

С первых дней World Wide Web разработчики сайтов стремились к тому, чтобы посетители могли поделиться своими мыслями и комментариями по поводу сайта. На сайтах эта возможность обычно называется <гостевой книгой> (guestbook). Я покажу, как легко создать гостевую книгу при помощи форм HTML, средств обработки форм РНР и текстового файла.

Прежде всего создается инициализационный файл, содержащий некоторые глобальные переменные и функции приложения (листинг 10.10).

Листинг 10.10. Файл init.inc, используемый при создании гостевой книги

<?

// Файл: init.inc

// Назначение: глобальные переменные и функции для проекта гостевой книги Таблицы размещения файлов (FAT). FAT представляет из себя таблицу, состоящую из большого количества элементов, описывающих распределение всех кластеров на диске. На первый взгляд может показаться странным, что на дискетах с высокой плотностью записи и большим, чем на дискетах с низкой плотностью, количеством отдельных секторов, размеры кластеров иногда оказываются меньшими.

// Заголовок страницы по умолчанию

$title = "My Guestbook";

// Цвет фона

$bg_color = "white": /

// Гарнитура шрифта

$font_face = "Arial, Verdana, Times New Roman";

// Цвет шрифта

$font_color = "black";

// Дата отправки $post_date - date("M d y");

// Файл данных гостевой книги

$guest_file = "comments.txt";

// Функция читает данные гостевой книги

//и отображает их в браузере

function view_guest($guest_file) {

GLOBAL $font_face, $font_color;

print "Return to <a href=\"index.php\">index</a>,<br><br>";

// Если в файле гостевой книги имеются данные...

if (filesize($guest_file) > 0) :

// Открыть файл данных гостевой книги

$fh = fopen($guest_file. "r") or die("Couldn't open $guest_file");

print "<table border=1 cellpadding=2 cellspacing=0 width=\"600\">";

// Повторять до конца файла

while (! feof($fh)) :

// Прочитать следующую строку

$line <= fgetsdfh, 4096);

// Разбить строку на компоненты

// и присвоить каждый компонент переменной

list($date. $name, $email, $comments) = explode("|", $line):

// Если указано имя посетителя, вывести его

if ($name != "") :

print "<tr>":

print "<td><font color=\"$font_co!or\"

face=\"$font_face\">Date:</font></td>";

print "<td><font color=\"$font_color\"

face=\"$font_face\">$date</font></td>";

print "</tr>";

print "<tr>";

print "<td><font color=\"$font_color\"

face=\"$font_face\">Name:</font></td>";

print "<td><font color=\"$font_color\"

face=\"$font_face\">$name</font></td>";

print "</tr>";

print "<tr>";

print "<td><font color=\"$font_color\"

face=\"$font_face\">Email:</font></td>";

print "<td><font color=\"$font_color\"

face=\"$font_face\">$email</font></td>";

print "</tr>";

print "<tr>";

print "<td valign=\'top\"><font color=\"$font_color\"

face=\"$font_face\">Message:</font></td>";

print "<td><font color=\"$font_color\"

face=\"$font_face\">$comments</font></td>";

print "</tr>";

print "<tr><td colspan=\"2\">&nbsp:</td></tr>";

endif;

endwhile;

print "</table>";

// Закрыть файл

fclose($fh);

else :

print "<h3>Currently there are no entries in the guestbook!</h3>";

endif;

} // view_guest

// Функция сохраняет новую информацию в файле данных

function add_guest($name, $email, $comments) {

GLOBAL $post_date, $guest_file;

// Отформатировать данные для ввода ,

$contents = "$post_date|$name|$email |$comments\n";

// Открыть файл данных

$fh = fopen($guest_file. "a") or dieC'Could not open $guest_file!");

// Записать данные в файл

$wr = fwrite($fh, $contents) or die("Could not write to $guest_file!");

// Закрыть файл fclose($fh);

} // add_guest

?>

Затем создаются еще три файла: файл ссылок index.php, файл add_guest.php для вывода информации гостевой книги и файл view_guest.php для ввода новых данных. Файл index.php (листинг 10.11) просто отображает две ссылки для выполнения основных функций гостевой книги - просмотра и добавления новых данных. Эти ссылки легко включаются в сайт, имеющий более сложную структуру.

Листинг 10.11. Файл index.php со ссылками для просмотра и добавления новых данных в гостевую книгу

<html>

<?

INCLUDE("init.inc");

?>

<head>

<title><?=$page_title;?></title>

</head>

<body bgcolor="<?=$bg_color;?>" text="#000000" link="#808040" vlink="#808040" alink="#808040">

<a href="view_guest.php">View the guestbook!</a><br>

<a href="add_guest.php">Sign the guestbook!</a><br>

</body>

</html>

Файл view_guest.php (листинг 10.12) выводит всю информацию гостевой книги, хранящуюся в файле данных.

Листинг 10.12. Файл view_guest.php

<html>

<?

INCLUDE("init.inc");

?>

<head>

<t1tle><?=$page_title;?></t1tle>

</head>

<body bgcolor="<?=$bg_color:?>" text="#000000" link=" vlink="#808040" alink="#808040">

vi ew_guest ( $guest_file );

?>

Файл add_guest.php (листинг 10.13) запрашивает у пользователя новые данные для внесения в гостевую книгу. Введенная информация записывается в файл данных.

Листинг 10.13. Файл add_guest.php

<html>

<?

INCLUDE("init.inc");

?>

<head>

<title><?=$page_title:?></title>

</head>

<body bgcolor="#ffffff" text="#000000" link="#808040" vlink="#808040" alink="#808040">

?<

// Если форма еще не отображалась - запросить данные у пользователя

if (! $seenform) :

?>

<form action="add_guest.php" method="post">

<input type="hidden" name="seenform" value="y">

Name:<br>

<input type="text" name="name" size="15" maxlength="30" value=""><br>

Email:<br>

<input type="text" name="email" size="15" maxlength="35" value=""><br>

Comment: <br>

<textarea name="comment" rows="'3" cols="40"></textarea><br>

<input type="submit" value="submit">

</form>

// Форма уже отображалась - добавить данные в текстовый файл.

else :

add_guest($name, $email, $comment);

print "<h3>Your comments have been added to the guestbook.

<a href=\"index.php\">Click here</a> to return to the index. </h3>";

endif;

?>

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

На рис. 10.8 показано, как выглядит гостевая книга после сохранения пары записей.

Рис. 10.8. Просмотр гостевой книги (view_guest.php)

Информация, показанная на рис. 10.8, хранится в файле данных в следующем виде:

Oct 29 00|Michele|michelle@latorre.com|I love cheese!

Oct 29 00|Nino|nino@latorre.com|Great site!

Начертательная геометрия и инженерная графика, перспектива