﻿<?php
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
echo "<HTML><HEAD><TITLE></TITLE>\n";
echo "<META content=\"TEXT/HTML; CHARSET=WINDOWS-1251\" http-equiv=CONTENT-TYPE>\n";
echo "<META content=\"Microsoft FrontPage 4.0\" name=GENERATOR>\n";
echo "<STYLE></STYLE>\n";
echo "</HEAD>\n";
echo "<body background=../FON.JPG>\n";
echo "<ul>\n";
echo "\n";
echo "  <li><a href=\"#a\"><font face=\"Times New Roman\" size=3>Глава 10. Формы</font></a> </li>\n";
echo "  <ul>\n";
echo "    <li><a href=\"#b\"><font face=\"Times New Roman\" size=\"3\">Общие\n";
echo "      сведения о формах</font></a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#c\"><font face=\"Times New Roman\" size=\"3\">Элементы\n";
echo "          форм, ориентированные на ввод с\n";
echo "          клавиатуры</font></a></li>\n";
echo "        <li><a href=\"#d\"><font face=\"Times New Roman\" size=\"3\">Элементы\n";
echo "          форм, ориентированные на ввод с мыши</font></a></li>\n";
echo "        <li><a href=\"#e\"><font face=\"Times New Roman\" size=\"3\">Все\n";
echo "          вместе: пример формы</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#f\"><font face=\"Times New Roman\" size=\"3\">Формы и PHP</font></a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#g\"><font face=\"Times New Roman\" size=\"3\">Вводные\n";
echo "          примеры</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#h\"><font face=\"Times New Roman\" size=\"3\">Проверка\n";
echo "      ошибок</font></a></li>\n";
echo "    <li><a href=\"#i\"><font face=\"Times New Roman\" size=\"3\">Динамическое\n";
echo "      конструирование форм</font></a></li>\n";
echo "    <li><a href=\"#j\"><font face=\"Times New Roman\" size=\"3\">Проект:\n";
echo "      гостевая книга</font></a>\n";
echo "    </li>\n";
echo "    <li><a href=\"#k\"><font face=\"Times New Roman\" size=\"3\">Итоги</font></a>\n";
echo "    </li>\n";
echo "  </ul>\n";
echo "</ul>\n";
echo "<A NAME=\"a\"></A>\n";
echo "<p>&nbsp;</p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Times New Roman\" size=\"5\">ГЛАВА 10</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Times New Roman\" size=\"5\">Формы</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Получение и\n";
echo "обработка данных, введенных пользователем,\n";
echo "стали неотъемлемой частью большинства\n";
echo "успешных web-сайтов. Бесспорно, возможности\n";
echo "накопления статистики, проведения опросов,\n";
echo "хранения персональных настроек и поиска\n";
echo "выводят Web на принципиально новый уровень —\n";
echo "без них эта среда обладала бы минимальной\n";
echo "интерактивностью.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Ввод\n";
echo "информации в основном реализуется с\n";
echo "применением форм HTML. Несомненно, вы хорошо\n";
echo "знакомы с принципами работы форм HTML. Как\n";
echo "правило, пользователь заполняет в форме\n";
echo "одно или несколько полей (например, имя и\n";
echo "адрес электронной почты), нажимает кнопку\n";
echo "отправки данных, после чего получает\n";
echo "ответное сообщение.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Возможно, вы\n";
echo "полагаете, что сбор пользовательских\n";
echo "данных в формах HTML — процесс сложный и\n";
echo "утомительный. В действительности эта\n";
echo "задача решается на удивление просто.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"b\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Общие\n";
echo "сведения о формах</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При вводе\n";
echo "данных в форму используются различные\n";
echo "управляющие элементы. В одних элементах\n";
echo "пользователь вводит информацию с\n";
echo "клавиатуры, в других он выбирает нужный\n";
echo "вариант, щелкая кнопкой мыши. В формах могут\n";
echo "присутствовать скрытые поля, которые\n";
echo "поддерживаются самой формой; содержимое\n";
echo "скрытых полей не должно изменяться\n";
echo "пользователем.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Одна\n";
echo "страница может содержать несколько форм,\n";
echo "поэтому необходимы средства, которые\n";
echo "позволяли бы отличить одну форму от другой.\n";
echo "Более того, вы должны как-то сообщить форме,\n";
echo "куда следует перейти, когда пользователь\n";
echo "выполняет действие с формой (как правило,\n";
echo "нажимает кнопку отправки данных). Обе\n";
echo "задачи решаются заключением форм в\n";
echo "следующие теги HTML:</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">&lt;form action = действие\n";
echo "method\n";
echo "= &quot;метод&quot; -\n";
echo "элементы формы -&lt;/form&gt;</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Как видно\n";
echo "из приведенного фрагмента, в тегах форм\n";
echo "указываются два важных элемента: действие и\n";
echo "метод. </font><i><font COLOR=\"#000000\">Действие </font></i><font COLOR=\"#000000\">указывает,\n";
echo "какой сценарий должен обрабатывать форму, а\n";
echo "</font><i><font COLOR=\"#000000\">метод </font></i><font COLOR=\"#000000\">определяет\n";
echo "способ передачи данных этому сценарию.\n";
echo "Существует два метода:</font></font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Метод get\n";
echo "передает все данные формы в конце URL. Из-за\n";
echo "различных ограничений, связанных со\n";
echo "спецификой языков и длиной данных, этот\n";
echo "метод применяется редко.</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Метод post\n";
echo "передает все данные формы в теле запроса.\n";
echo "Этот метод используется чаще, чем get.</font></li>\n";
echo "</ul>\n";
echo "<p><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\"><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><i>В\n";
echo "этой главе приведена лишь очень краткая\n";
echo "вводная информация по основному син-таксису\n";
echo "форм HTML. Более полную информацию можно\n";
echo "найти в книге А. Хоумера и К. Улмена «Dynamic HTML.\n";
echo "Справочник» (СПб.: Питер, 1999).</i></font></p>\n";
echo "<p><A NAME=\"c\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Элементы\n";
echo "форм, ориентированные на ввод с клавиатуры</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Наше\n";
echo "знакомство с построением форм начнется с\n";
echo "элементов, ориентированных на ввод с\n";
echo "клавиатуры. Таких элементов всего два —\n";
echo "текстовое поле (text box) и текстовая область (text\n";
echo "area).</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Текстовое\n";
echo "поле</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В текстовых\n";
echo "полях обычно вводится короткая текстовая\n";
echo "информация — скажем, адрес электронной\n";
echo "почты, почтовый адрес или имя. Синтаксис\n";
echo "определения текстового поля:</font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">&lt;input type=&quot;text&quot;\n";
echo "nате=&quot;имя_переменной&quot; size=&quot;N&quot;\n";
echo "maxlength=&quot;N&quot; value=&quot;&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "текстового поля включает пять атрибутов:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">type — тип\n";
echo "элемента (для текстовых полей — text);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">name — имя\n";
echo "переменной, в которой сохраняются\n";
echo "введенные данные;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">size — общий\n";
echo "размер текстового поля в браузере;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">maxlength —\n";
echo "максимальное количество символов, вводимых\n";
echo "в текстовом поле;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value —\n";
echo "значение, отображаемое в текстовом поле по\n";
echo "умолчанию.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Текстовое\n";
echo "поле изображено на рис. 10.1.</font></p>\n";
echo "<p><img border=\"0\" src=\"10.1.jpg\"></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Рис. 10.1. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Текстовое\n";
echo "поле</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Особой\n";
echo "разновидностью текстовых полей является\n";
echo "поле для ввода паролей. Оно работает точно\n";
echo "так же, как обычное текстовое поле, однако\n";
echo "вводимые символы заменяются звездочками.\n";
echo "Чтобы создать в форме поле для ввода\n";
echo "паролей, достаточно указать type=&quot;password&quot;\n";
echo "вместо type=&quot;text&quot;.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Текстовая\n";
echo "область</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Текстовая\n";
echo "область (text area) используется для ввода\n";
echo "несколько больших объемов текста, не\n";
echo "ограничивающихся простым именем или\n";
echo "адресом электронной почты. Синтаксис\n";
echo "определения текстовой области:</font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">&lt;textarea name=&quot;имя_переменной&quot;\n";
echo "rows=&quot;N&quot; cols=&quot;N&quot; value=&quot;&quot;&gt;&lt;/textarea&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "текстового поля включает три атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">name — имя\n";
echo "переменной, в которой сохраняются\n";
echo "введенные данные;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">rows —\n";
echo "количество строк в текстовой области;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">cols —\n";
echo "количество столбцов в текстовой области.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Текстовая\n";
echo "область изображена на рис. 10.2.</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\">&nbsp;<img border=\"0\" src=\"10.2.jpg\"></font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Рис. 10.2. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Текстовая\n";
echo "область</font></font></p>\n";
echo "</i>\n";
echo "<p><A NAME=\"d\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Элементы\n";
echo "форм, ориентированные на ввод с мыши</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В других\n";
echo "элементах форм пользователь выбирает один\n";
echo "из заранее определенных вариантов при\n";
echo "помощи мыши. Я ограничусь описанием флажков,\n";
echo "переключателей и раскрывающихся списков.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Флажок</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Флажки (checkboxes)\n";
echo "используются в ситуациях, когда\n";
echo "пользователь выбирает один или несколько\n";
echo "вариантов из готового набора — по аналогии\n";
echo "с тем, как ставятся «галочки» в анкетах.\n";
echo "Синтаксис определения флажка:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;checkbox&quot;\n";
echo "name=&quot;</font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">имя_переменной&quot;\n";
echo "valuе=&quot;начальное_значение&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "флажка включает три атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">type — тип\n";
echo "элемента (для флажков — checkbox);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">name — имя\n";
echo "переменной, в которой сохраняются\n";
echo "введенные данные (в данном случае —\n";
echo "состояние элемента);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value —\n";
echo "значение, присваиваемое переменной по\n";
echo "умолчанию. Если флажок установлен, именно\n";
echo "это значение будет присвоено переменной с\n";
echo "указанным именем. Если флажок не установлен,\n";
echo "значение атрибута value не используется.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Флажок\n";
echo "изображен на рис. 10.3.</font></p>\n";
echo "<p><img border=\"0\" src=\"10.3.jpg\" width=\"157\" height=\"114\"></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Рис. 10.3. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Флажок</font></font></p>\n";
echo "</i><b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Переключатель</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Переключатель\n";
echo "(radio button) представляет собой разновидность\n";
echo "флажка; он работает практически так же за\n";
echo "одним исключением — в любой момент времени\n";
echo "в группе может быть установлен лишь один\n";
echo "переключатель. Синтаксис определения\n";
echo "переключателя:</font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">&lt;input type=&quot;radio&quot;\n";
echo "name=&quot;имя_переменной&quot; value=&quot;начальное_значение&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Как видите,\n";
echo "синтаксис почти не отличается от\n";
echo "определения флажка. Определение\n";
echo "переключателя поля включает три атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">type — тип\n";
echo "элемента (для переключателей — radio);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">name — имя\n";
echo "переменной, в которой сохраняются\n";
echo "введенные данные (в данном случае —\n";
echo "состояние элемента);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value —\n";
echo "значение, присваиваемое переменной по\n";
echo "умолчанию. Если переключатель установлен,\n";
echo "именно это значение будет присвоено\n";
echo "переменной с указанным именем. Если флажок\n";
echo "не установлен, значение атрибута value не\n";
echo "используется.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Переключатель\n";
echo "изображен на рис. 10.4.</font></p>\n";
echo "<p><img border=\"0\" src=\"10.4.jpg\" width=\"207\" height=\"104\"></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Рис. 10.4. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Переключатель</font></font></p>\n";
echo "</i><b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Раскрывающийся\n";
echo "список</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Раскрывающиеся\n";
echo "списки особенно удобны в ситуации, когда у\n";
echo "вас имеется длинный перечень допустимых\n";
echo "вариантов, из которого пользователь должен\n";
echo "выбрать один вариант. Как правило,\n";
echo "раскрывающиеся списки применяются при\n";
echo "работе с относительно большими наборами\n";
echo "данных — например, при перечислении\n";
echo "американских штатов или стран. Синтаксис\n";
echo "определения раскрывающегося списка:</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">&lt;select name=&quot;имя_переменной&quot;&gt;</font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">&lt;option valuе=&quot;имя_переменной1\n";
echo "&quot;&gt;</font></font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">&lt;option value=&quot;</font><font COLOR=\"#000000\">имя_переменной2&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;</font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">имя_переменнойЗ&quot;&gt;</font></font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">&lt;option value=&quot;</font><font COLOR=\"#000000\">имя_переменнойN&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">&lt;/select&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "переключателя поля включает три атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">name — имя\n";
echo "переменной, в которой сохраняются\n";
echo "введенные данные (в данном случае — строка,\n";
echo "выбранная в списке);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value —\n";
echo "значение, отображаемое в списке по\n";
echo "умолчанию.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Раскрывающийся\n";
echo "список изображен на рис. 10.5.</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\">&nbsp;<img border=\"0\" src=\"10.5.jpg\" width=\"410\" height=\"133\"></font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Рис. 10.5. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Раскрывающийся\n";
echo "список</font></font></p>\n";
echo "</i><b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Скрытые поля</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Скрытые поля\n";
echo "не отображаются в браузере и обычно\n";
echo "используются для передачи данных между\n";
echo "сценариями. Хотя передача в скрытых полях\n";
echo "работает вполне нормально, в РНР существует\n";
echo "другое, более удобное средство — сеансовые\n";
echo "переменные (см. главу 13). Впрочем, скрытые\n";
echo "поля также используются в некоторых\n";
echo "ситуациях и потому заслуживают упоминания.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Синтаксис\n";
echo "определения скрытого поля практически\n";
echo "идентичен синтаксису текстовых полей,\n";
echo "отличается только атрибут типа. Поскольку\n";
echo "скрытые поля не отображаются в браузере,\n";
echo "привести пример на страницах книги\n";
echo "невозможно. Синтаксис определения скрытого\n";
echo "поля:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;hidden&quot;\n";
echo "name=&quot;имя_переменной&quot; value=&quot;</font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">начальное_значение&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "скрытого поля включает три атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">type — тип\n";
echo "элемента (для скрытых полей — hidden);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">name — имя\n";
echo "переменной, в которой сохраняются скрытые\n";
echo "данные;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value —\n";
echo "значение, по умолчанию сохраняемое в\n";
echo "скрытом поле.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вообще\n";
echo "говоря, название этого элемента — скрытое\n";
echo "поле — несколько неточно. Хотя скрытые поля\n";
echo "не отображаются в браузерах, пользователь\n";
echo "может просто выполнить команду View Source и\n";
echo "увидеть, какие скрытые значения хранятся в\n";
echo "форме.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Кнопка\n";
echo "отправки данных</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Кнопка\n";
echo "отправки данных инициирует действие,\n";
echo "заданное атрибутом action тега &lt;form&gt;.\n";
echo "Синтаксис определения:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;submit&quot;\n";
echo "value=&quot;</font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">текст_на_кнопке&quot;&gt;</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "кнопки включает два атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">type — тип\n";
echo "элемента (для кнопки отправки данных — submit);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value — текст,\n";
echo "по умолчанию отображаемый на кнопке.</font></li>\n";
echo "</ul>\n";
echo "<b><i>\n";
echo "<p><img border=\"0\" src=\"10.6.jpg\" width=\"66\" height=\"24\"></p>\n";
echo "<p><font COLOR=\"#000000\">Рис. 10.6. </font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Кнопка\n";
echo "отправки данных</font></font></p>\n";
echo "</i><b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Кнопка\n";
echo "сброса</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Кнопка\n";
echo "сброса отменяет все изменения, внесенные в\n";
echo "элементы формы. Обычно никто ею не\n";
echo "пользуется, однако кнопки сброса так часто\n";
echo "встречаются на формах в Web, что я решил\n";
echo "привести ее описание. Синтаксис\n";
echo "определения:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">&lt;input type=&quot;reset&quot;\n";
echo "value<i>=&quot; </i></font><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">текст\n";
echo "_на_кнопке&quot;&gt;</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определение\n";
echo "кнопки включает два атрибута:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">type — тип\n";
echo "элемента (для кнопки сброса — reset);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">value — текст,\n";
echo "по умолчанию отображаемый на кнопке.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Кнопка\n";
echo "сброса выглядит точно так же, как и кнопка\n";
echo "отправки данных, если не считать того, что\n";
echo "на ней обычно выводится слово «Reset» (рис. 10.6).</font></p>\n";
echo "<p><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\"><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Джейкоб\n";
echo "Нильсен (Jakob Nielsen), известный авторитет в\n";
echo "области Web, недавно напи-сал интересную\n";
echo "статью о проблемах, связанных с\n";
echo "использованием кнопки сброса. Статья\n";
echo "опубликована по адресу <a href=\"http://www.useit.com/alertbox/20000416.html\">http://www.useit.com/alertbox/20000416.html</a>.</font></p>\n";
echo "</i>\n";
echo "<p><A NAME=\"e\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Все вместе:\n";
echo "пример формы</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">От описания\n";
echo "базовых компонентов форм мы переходим к\n";
echo "практическому примеру — построению формы\n";
echo "для обработки данных, введенных\n";
echo "пользователем. Допустим, вы хотите создать\n";
echo "форму, в которой пользователь может\n";
echo "высказать мнение о вашем Сайте. Пример\n";
echo "такой формы приведен в листинге 10.1.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.1. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Пример\n";
echo "формы для сбора данных</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action =\n";
echo "&quot;process.php&quot; method = &quot;post&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Please take a\n";
echo "moment to tell us what you think about our site:&lt;/b&gt;&lt;p&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Name:&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;text&quot;\n";
echo "name=&quot;name&quot; size=&quot;15&quot; maxlength=&quot;25&quot; value=&quot;&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Email:&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;text&quot;\n";
echo "name=&quot;email&quot; size=&quot;15&quot; maxlength=&quot;45&quot; value=&quot;&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;How frequently\n";
echo "do you visit our site?:&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;select name=&quot;frequency&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;&quot;&gt;Site\n";
echo "frequency:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;0&quot;&gt;This\n";
echo "is my first time</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;l&quot;&gt;&amp;lt;\n";
echo "1 time a month</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;2&quot;&gt;Roughly\n";
echo "once a month</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;3&quot;&gt;Several\n";
echo "times a week</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=&quot;4&quot;&gt;Every\n";
echo "day</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option\n";
echo "va1ue-&quot;5&quot;&gt;I'm addicted</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/select&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;I frequently\n";
echo "purchase the following products from our site:&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;checkbox&quot;\n";
echo "name=&quot;software&quot; value=&quot;software&quot;&gt;Software&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;checkbox&quot;\n";
echo "name=&quot;cookware&quot; value=&quot;cookware&quot;&gt;Cookware&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;checkbox&quot;\n";
echo "name=&quot;hats&quot; value=&quot;hats&quot;&gt;Chef's Hats&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;0ur site's\n";
echo "greatest asset is:&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;radio&quot;\n";
echo "name=&quot;asset&quot; value=&quot;products&quot;&gt;Product selection&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;radio&quot;\n";
echo "name=&quot;asset&quot; value=&quot;design&quot;&gt;Cool design&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;radio&quot;\n";
echo "name=&quot;asset&quot; value=&quot;service&quot;&gt;Customer Service&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Comments:&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;textarea name=&quot;comments&quot;\n";
echo "rows=&quot;3&quot; cols=&quot;40&quot;&gt;&lt;/textarea&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;submit&quot;\n";
echo "value=&quot;Submit!&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Внешний вид\n";
echo "формы в браузере изображен на рис. 10.7.</font></p>\n";
echo "<p>&nbsp;<img border=\"0\" src=\"10.7.jpg\" width=\"350\" height=\"399\"></p>\n";
echo "<p><b><i><font COLOR=\"#000000\">Рис. 10.7. </font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Пример\n";
echo "формы для ввода данных</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вроде бы все\n";
echo "понятно. Возникает вопрос — как получить\n";
echo "данные, введенные пользователем, и сделать\n";
echo "с ними что-нибудь полезное? Этой теме\n";
echo "посвящен следующий раздел, «Формы и РНР».</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Не забывайте:\n";
echo "все сказанное ранее — не более чем вводный\n";
echo "курс. Приведенная информация ни в коем\n";
echo "случае не исчерпывает всех возможностей,\n";
echo "предоставляемых различными компонентами\n";
echo "форм. За дополнительной информацией\n";
echo "обращайтесь к многочисленным учебникам по\n";
echo "работе с формами, опубликованным в Web, а\n";
echo "также книгам по HTML.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">От\n";
echo "предварительного знакомства с формами HTML\n";
echo "мы переходим к самому интересному —\n";
echo "применению РНР для обработки данных,\n";
echo "введенных пользователем в форме.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"f\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Формы и РНР</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Обработка\n";
echo "данных в формах имеет много общего с\n";
echo "обработкой переменных, передаваемых в URL, —\n";
echo "эта тема подробно рассматривалась в\n";
echo "предыдущей главе.</font></p>\n";
echo "<p><A NAME=\"g\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Вводные\n";
echo "примеры</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующие\n";
echo "практические примеры помогут вам быстрее\n";
echo "освоить различные аспекты обработки форм в\n";
echo "РНР. В этих примерах продемонстрированы\n";
echo "разные подходы к реализации интерактивных\n";
echo "возможностей на сайте.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 1:\n";
echo "передача данных формы из одного сценария в\n";
echo "другой</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В первом\n";
echo "примере представлена характерная ситуация\n";
echo "— когда пользовательские данные вводятся\n";
echo "на одной странице и отображаются на другой.\n";
echo "В листинге 10.2 приведен код формы для ввода\n";
echo "имени пользователя и адреса электронной\n";
echo "почты. Когда пользователь щелкает на кнопке\n";
echo "отправки данных (кнопка Go!), форма\n";
echo "обращается к странице, приведенной в\n";
echo "листинге 10.3. В свою очередь, листинг 10.3\n";
echo "выводит переменные $name и $mail, переданные с\n";
echo "запросом.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.2. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Простая\n";
echo "форма</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing\n";
echo "10-2&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action=&quot;listingl0-3.php&quot;\n";
echo "method=&quot;post&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Give us some\n";
echo "information!&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Name:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;text&quot;\n";
echo "name=&quot;name&quot; size=&quot;20&quot; maxlength=&quot;20&quot; value=&quot;&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;text&quot;\n";
echo "name=&quot;email&quot; size=&quot;20&quot; maxlength=&quot;40&quot; value=&quot;&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=&quot;submit&quot;\n";
echo "value=&quot;go!&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt; &lt;/html&gt;</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.3. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Отображение\n";
echo "данных, введенных в листинге 10.1</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt; &lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing\n";
echo "10-3&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Вывести\n";
echo "имя и адрес электронной почты.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Hi. $name!.\n";
echo "Your email address is $email&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt; &lt;/html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В общих\n";
echo "чертах происходит следующее: пользователь\n";
echo "заполняет поля формы и нажимает кнопку\n";
echo "отправки данных. Управление передается\n";
echo "странице, приведенной в листинге 10.3, где\n";
echo "происходит форматирование и последующее\n";
echo "отображение данных. Как видите, все просто.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Существует и\n";
echo "другой способ обработки данных форм, при\n";
echo "котором используется всего один сценарий. К\n";
echo "недостаткам этого способа относятся\n";
echo "увеличение сценария и как следствие —\n";
echo "затруднения с редактированием и\n";
echo "сопровождением. Впрочем, есть и достоинства\n";
echo "— уменьшение количества файлов, с которыми\n";
echo "вам приходится работать. Более того, в этом\n";
echo "варианте сокращается избыточный код при\n";
echo "проверке ошибок (эта тема рассматривается\n";
echo "ниже в данной главе). Конечно, в некоторых\n";
echo "ситуациях работать с одним сценарием\n";
echo "неудобно, но, по крайней мере, вы должны\n";
echo "знать об этой возможности. В примере 2\n";
echo "воспроизводится пример 1, но с\n";
echo "использованием лишь одного сценария.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 2:\n";
echo "альтернативная обработка формы (с одним\n";
echo "сценарием)</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Обработка\n";
echo "данных формы в одном сценарии реализуется\n";
echo "относительно просто. Вы проверяете, были ли\n";
echo "присвоены значения переменным формы. Если\n";
echo "значения присвоены, сценарий обрабатывает\n";
echo "их (в нашем примере — просто выводит), а если\n";
echo "нет — отображает форму. Решение о том, было\n";
echo "ли задано значение переменной или нет,\n";
echo "принимается при помощи функции strcmp( ),\n";
echo "описанной в главе 8. Пример реализации формы\n";
echo "с одним сценарием приведен в листинге 10.4.\n";
echo "Обратите внимание: атрибут action формы\n";
echo "ссылается на ту же страницу, в которой\n";
echo "определяется сама форма. Условная команда i\n";
echo "f проверяет состояние переменной скрытого\n";
echo "поля с именем $seenform. Если значение $seenform не\n";
echo "задано, форма отображается в браузере, а\n";
echo "если задано — значит, форма была заполнена\n";
echo "пользователем и введенные данные\n";
echo "обрабатываются сценарием (в данном примере\n";
echo "— просто выводятся в браузере).</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.4. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Ввод\n";
echo "данных на форме в одном сценарии</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing\n";
echo "10-4&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;f808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Все\n";
echo "кавычки внутри $form должны экранироваться,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// в\n";
echo "противном случае произойдет ошибка.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$form = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action=\&quot;listing10-4.php\&quot;\n";
echo "method=\&quot;post\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;hidden\&quot;\n";
echo "name=\&quot;seenform\&quot; value=\&quot;y\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Give us some\n";
echo "information!&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Name:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;name\&quot; size=\&quot;20\&quot; maxlength=\&quot;20\&quot; value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;email\&quot; size=\&quot;20\&quot; maxlength=\&quot;40\&quot; value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;submit\&quot;\n";
echo "value=\&quot;subscribe!\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если форма\n";
echo "ранее не отображалась, отобразить ее.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Для\n";
echo "проверки используется значение скрытой\n";
echo "переменной $seenform.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($seenform != &quot;у&quot;):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;$form&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Hi. $name!.\n";
echo "Your email address is $email&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Учтите, что\n";
echo "этот вариант создает определенные\n";
echo "неудобства, поскольку при повторной\n";
echo "загрузке страницы пользователь ничего не\n";
echo "узнает о том, правильно ли были заполнены\n";
echo "поля формы. Процедура проверки ошибок\n";
echo "рассматривается далее в этой главе, а пока\n";
echo "достаточно запомнить, что ввод данных можно\n";
echo "осуществить при помощи одного сценария.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Теперь,\n";
echo "когда вы представляете, как просто\n";
echo "выполняются операции с формами, мы\n";
echo "переходим к интересному примеру —\n";
echo "автоматической отправке данных\n";
echo "пользователя по заданному адресу\n";
echo "электронной почты. Эта возможность\n";
echo "реализована в примере 3.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 3:\n";
echo "автоматическая отправка данных по\n";
echo "электронной почте</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вывести\n";
echo "пользовательские данные в браузере\n";
echo "несложно, но вряд ли это можно назвать\n";
echo "содержательной обработкой\n";
echo "пользовательского ввода. Один из способов\n";
echo "обработки информации заключается в ее\n";
echo "отправке по электронной почте — например,\n";
echo "администратору сайта. Хотя при помощи\n";
echo "гиперссылки mailto: можно отправить сообщение\n";
echo "прямо из браузера, следует учитывать, что\n";
echo "внешние приложения электронной почты\n";
echo "настроены не на каждом компьютере.\n";
echo "Следовательно, отправка сообщений с web-формы\n";
echo "более надежно гарантирует, что сообщение\n";
echo "будет доставлено адресату.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "разделе, mail( ), создается небольшая форма, в\n";
echo "которой пользователь вводит информацию и\n";
echo "комментарии по поводу сайта. Затем данные\n";
echo "форматируются соответствующим образом и\n";
echo "передаются стандартной функции РНР mail( ). Но\n";
echo "прежде чем переходить к построению формы,\n";
echo "необходимо предварительно рассмотреть\n";
echo "синтаксис функции mail( ).</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">mail ( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция mail( )\n";
echo "отправляет сообщение заданному адресату по\n";
echo "электронной почте. Синтаксис функции mail( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">boolean </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">mail\n";
echo "(string получатель, string\n";
echo "тема, string сообщение [, string доп_заголовки])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В параметре\n";
echo "тема, как нетрудно предположить, передается\n";
echo "тема сообщения. Параметр сообщение\n";
echo "содержит текст сообщения, а необязательный\n";
echo "параметр доп_за головки предназначен для\n";
echo "включения дополнительной информации (например,\n";
echo "атрибутов форматирования HTML), пересылаемой\n";
echo "с сообщением.</font></p>\n";
echo "<p><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\">В\n";
echo "системе UNIX функция mail( ) использует утилиту\n";
echo "sendmail. В Windows эта функция работает лишь при\n";
echo "наличии установленного почтового сервера\n";
echo "или если функция mail( ) связана с работающим\n";
echo "сервером SMTP. Эта задача решается\n";
echo "модификацией переменной SMTP в файле php.ini.</font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если вы\n";
echo "сделали все необходимое и функция mail( )\n";
echo "работает в вашей системе, попробуйте\n";
echo "выполнить следующий фрагмент (конечно,\n";
echo "адрес youraddress@yourserver.com заменяется вашим\n";
echo "настоящим адресом электронной почты):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$email = &quot;youraddress@yourserver.com&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$subject = &quot;This is the subject&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$message = &quot;This is the message&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$headers = &quot;From: somebody@somesite.com&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">mail ($email, $subject,\n";
echo "$message, $headers);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Хотя при\n";
echo "обширной переписке, конечно, следует\n";
echo "использовать специализированные почтовые\n";
echo "программы вроде majordomo (<a href=\"http://www.greatcircle.com/majordomo\">http://www.greatcircle.com/majordomo</a>),\n";
echo "в простых случаях функции РНР mail( )\n";
echo "оказывается вполне достаточно.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Итак, после\n";
echo "знакомства с функцией mail( ) можно применить\n";
echo "ее на практике. В листинге 10.5 показано, как\n";
echo "получить информацию от пользователя и\n";
echo "отправить ее по адресу, заданному\n";
echo "администратором сценария.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.5. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Пересылка\n";
echo "пользовательских данных функцией mail( )</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing\n";
echo "10-5&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Все\n";
echo "кавычки внутри $form должны экранироваться.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// в\n";
echo "противном случае произойдет ошибка.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$form = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action=\&quot;listing10-5.php\&quot;\n";
echo "method=\&quot;post\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;hidden\&quot;\n";
echo "name=\&quot;seenform\&quot; value=\&quot;y\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Send us your\n";
echo "comments!&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Name:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;name\&quot; size=\&quot;20\&quot; maxlength=\&quot;20\&quot; value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name-\&quot;email\&quot; size=\&quot;20\&quot; maxlength=\&quot;40\&quot; value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Comments:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;textarea name=\&quot;comments\&quot;\n";
echo "rows=\&quot;3\&quot; cols=\&quot;30\&quot;&gt;&lt;/textarea&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;submit\&quot;\n";
echo "value=\&quot;submit!\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если форма\n";
echo "ранее не отображалась, отобразить ее.</font></p>\n";
echo "<i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// </font></i><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">Для\n";
echo "проверки используется значение скрытой\n";
echo "переменной $seenform.</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($seenform != &quot;у&quot;) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;$form&quot;;\n";
echo "else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Переменная\n";
echo "$recipient определяет получателя данных формы</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$recipient = &quot;yourname@youremail.com&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Тема\n";
echo "сообщения</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$subject = &quot;User\n";
echo "Comments ($name)&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Дополнительные заголовки $headers = &quot;From: $email&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Отправить\n";
echo "сообщение или выдать сообщение об ошибке</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">mail($recipient, $subject,\n";
echo "$comments, $headers) or die(&quot;Could not send email!&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Вывести\n";
echo "сообщение для пользователя</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Thank you\n";
echo "$name for taking a moment to send us your comments!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Неплохо,\n";
echo "правда? Листинг 10.5 работает так же, как\n";
echo "листинг 10.4; сначала мы проверяем,\n";
echo "отображалась ли форма ранее. Если это\n";
echo "происходило, программа вызывает функцию mail(\n";
echo ") и пользовательские данные отправляются по\n";
echo "адресу, определяемому переменной $recipient.\n";
echo "Затем в браузере выводится\n";
echo "благодарственное сообщение для\n";
echo "пользователя.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Простейшим\n";
echo "расширением этого примера будет отправка\n";
echo "благодарственного сообщения по\n";
echo "электронной почте (вторым вызовом mail( )).\n";
echo "Следующий пример развивает эту идею —\n";
echo "пользователю предлагается на выбор\n";
echo "несколько бюллетеней. Выбранные бюллетени\n";
echo "отправляются по электронной почте.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 4:\n";
echo "отправка запрашиваемой информации по\n";
echo "электронной почте</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В этом\n";
echo "примере в форме создается несколько\n";
echo "флажков, каждый из которых соответствует\n";
echo "отдельному документу с информацией о сайте.\n";
echo "Пользователь устанавливает один, два или\n";
echo "три флажка, вводит свой адрес, и\n";
echo "запрашиваемые брошюры отправляются ему по\n";
echo "электронной почте. Обратите внимание на\n";
echo "применение массива при работе с флажками —\n";
echo "это упрощает проверку выбранных флажков, а\n";
echo "также улучшает структуру программы.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Информационные\n";
echo "сообщения хранятся в отдельных файлах. В\n";
echo "нашем примере используются три текстовых\n";
echo "файла:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">site.txt —\n";
echo "информация о сайте;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">team.txt —\n";
echo "информация о талантливых разработчиках\n";
echo "сайта;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">events.txt —\n";
echo "приглашение на очередное мероприятие.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Исходный\n";
echo "текст примера приведен в листинге 10.6.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.6.</font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Отправка\n";
echo "информации, запрашиваемой пользователем</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing10-5&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$form = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action=\&quot;Listing10-6.php\&quot;\n";
echo "method=\&quot;post\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;hidden\&quot;\n";
echo "name=\&quot;seenform\&quot; value=\&quot;y\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Receive\n";
echo "information about our site!&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;email\&quot; size=\&quot;20\&quot; maxlength=\&quot;40\&quot; value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;checkbox\&quot;\n";
echo "name=\&quot;information[site]\&quot; value=\&quot;y\&quot;&gt;Site Architecture&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;checkbox\&quot;\n";
echo "name=\&quot;information[team]\&quot; value=\&quot;y\&quot;&gt;Development Team&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;checkbox\&quot;\n";
echo "name=\&quot;information[events]\&quot; value=\&quot;y\&quot;&gt;Upcoming Events&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;submit\&quot;\n";
echo "value=\&quot;send it to me!\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($seenform != &quot;y&quot;)\n";
echo ":</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;$form&quot;;\n";
echo "else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$headers = &quot;From:\n";
echo "devteam@yoursite.com&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Перебрать\n";
echo "все пары &quot;ключ/значение&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">while ( list($key, Sval)\n";
echo "= each ($information) ) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Сравнить\n";
echo "текущее значение с &quot;у&quot; if ($val == &quot;у&quot;) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Построить\n";
echo "имя файла, соответствующее текущему ключу</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$filename = &quot;$key.txt&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$subject = &quot;Requested\n";
echo "$key information&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Открыть\n";
echo "файл</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$fd = fopen ($filename,\n";
echo "&quot;r&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Прочитать\n";
echo "содержимое всего файла в переменную $contents =\n";
echo "fread ($fd. filesize ($filename));</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Отправить\n";
echo "сообщение</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">mail($email, $subject,\n";
echo "$contents, $headers) or die(&quot;Can't send email!&quot;);; fclose($fd);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endwhile;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Известить\n";
echo "пользователя об успешной отправке</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print sizeof($information).&quot;\n";
echo "informational newsletters</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">have been sent to\n";
echo "$email!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/html&gt;</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">В\n";
echo "листинге 10.6 мы перебираем пары «ключ/значение»\n";
echo "в цикле while и отправляем только те бюллетени,\n";
echo "у которых значение равно у. Следует помнить,\n";
echo "что имена текстовых файлов </font><i><font COLOR=\"#000000\">должны\n";
echo "</font></i><font COLOR=\"#000000\">соответствовать ключам\n";
echo "массива</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">(site.txt, team.txt и\n";
echo "events.txt). Имя файла строится динамически по\n";
echo "ключу, после чего файл открывается по имени\n";
echo "и его содержимое загружается в переменную ($contents).\n";
echo "Затем переменная $contents передается функции\n";
echo "mail( ) в качестве параметра.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере пользовательские данные\n";
echo "сохраняются в текстовом файле.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 5:\n";
echo "сохранение пользовательских данных в\n";
echo "текстовом файле</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Пользовательские\n";
echo "данные сохраняются в текстовом файле для\n";
echo "последующего статистического анализа,\n";
echo "поиска и т. д. — короче, любой обработки по\n";
echo "вашему усмотрению. В листинге 10.7, как и в\n";
echo "предыдущих примерах, данные формы\n";
echo "обрабатываются в одном сценарии.\n";
echo "Пользователю предлагается ввести четыре\n";
echo "объекта данных: имя, адрес электронной\n";
echo "почты, язык и профессию. Введенная\n";
echo "информация сохраняется в текстовом файле\n";
echo "user_information.txt. Элементы данных разделяются\n";
echo "символами «вертикальная черта» (|).</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.7. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Сохранение\n";
echo "пользовательской информации в текстовом\n";
echo "файле</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;titlexisting\n";
echo "10-7&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Создать\n";
echo "форму</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$form = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action=\&quot;Listing10-7.php\&quot;\n";
echo "method=\&quot;post\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;hidden\&quot;\n";
echo "name=\&quot;seenform\&quot; value=\&quot;y\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Give us your\n";
echo "personal info!&lt;/fb&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Name:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;name\&quot; size=\&quot;20\&quot; maxlength=\&quot;20\&quot; value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name&quot;=\&quot;email\&quot; size=\&quot;20\&quot; maxlength=\&quot;20\&quot;\n";
echo "value=\&quot;\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Preferred Language:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;select name=\&quot;language\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;\&quot;&gt;Choose\n";
echo "a language:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;English\&quot;&gt;English</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;Spanish\&quot;&gt;Spanish</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;Italian\&quot;&gt;Italian</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;French\&quot;&gt;French</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;Japanese\&quot;&gt;Japanese</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;newyork\&quot;&gt;NewYork-ese</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/select&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your\n";
echo "Occupation:'&quot;ibr&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;select name=\&quot;job\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;\&quot;&gt;What\n";
echo "do you do?:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;student\&quot;&gt;Student</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\\n";
echo "&quot;programmed &quot;&gt;Programmer</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;manager\&quot;&gt;Project\n";
echo "Manager</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;slacker\&quot;&gt;Slacker</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value=\&quot;chef\&quot;&gt;Gourmet\n";
echo "Chef</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/select&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;submit\&quot;\n";
echo "value=\&quot;submit!\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Заполнялась ли форма ранее? if ($seenform != &quot;у&quot;)\n";
echo ":</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;$form&quot;;\n";
echo "else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$fd = fopen(&quot;useMnformation.txt&quot;,\n";
echo "&quot;a&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Убедиться,\n";
echo "что во введенных данных не встречается</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "вертикальная черта.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$name = str_replace(&quot;|&quot;,\n";
echo "&quot;&quot;, $name);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$email = str_replace(&quot;|&quot;,\n";
echo "&quot;&quot;, $email);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Построить\n";
echo "строку с пользовательскими данными</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user_row = $name.&quot;\n";
echo "&quot;.$email.&quot;|&quot;.$language.&quot; &quot;.$job.&quot;\n&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">fwrite($fd, $user_row)\n";
echo "or die(&quot;Could not write to file!&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">fclose($fd);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Thank you\n";
echo "for taking a moment to fill out our brief questionnaire!&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Обратите\n";
echo "внимание на фрагмент, в котором мы\n";
echo "проверяем, что пользователь не включил в\n";
echo "имя или адрес электронной почты символы «вертикальная\n";
echo "черта» (|). Функция str_replace( ) удаляет эти\n";
echo "символы, заменяя их пустой строкой. Если бы\n";
echo "это не было сделано, пользовательские\n";
echo "символы | нарушили бы структуру файла\n";
echo "данных и существенно затруднили (а то и\n";
echo "сделали невозможным) его правильную\n";
echo "обработку.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При работе с\n";
echo "относительно малыми объемами информации\n";
echo "вполне можно обойтись текстовыми файлами.\n";
echo "Однако при большом количестве\n";
echo "пользователей или объеме сохраняемой\n";
echo "информации для хранения и обработки данных,\n";
echo "введенных в форме, лучше воспользоваться\n";
echo "базой данных. Эта тема подробно\n";
echo "рассматривается в главе 11.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">До\n";
echo "настоящего момента предполагалось, что\n";
echo "пользователь всегда вводит правильные\n";
echo "данные и не действует злонамеренно. В\n";
echo "высшей степени оптимистичное\n";
echo "предположение! В следующем разделе мы\n";
echo "усовершенствуем рассмотренные примеры и\n";
echo "организуем проверку целостности данных\n";
echo "форм. Проверка ошибок не только\n";
echo "обеспечивает удаление неполной и\n";
echo "неправильной информации, но и обеспечивает\n";
echo "более эффективный и удобный интерфейс.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"h\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Проверка\n";
echo "ошибок</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Обработка\n";
echo "пользовательских данных дает осмысленный\n";
echo "результат лишь в том случае, если данные\n";
echo "имеют правильную структуру. Проверить\n";
echo "достоверность введенных данных невозможно,\n";
echo "однако вы можете проверить их целостность (например,\n";
echo "убедиться в том, что адрес электронной\n";
echo "почты соответствует стандартному шаблону).\n";
echo "Хотя для проверки данных часто применяется\n";
echo "технология JavaScript, могут возникнуть\n";
echo "проблемы с несовместимостью браузеров.\n";
echo "Поскольку код РНР выполняется на стороне\n";
echo "сервера, вы всегда можете быть уверены в том,\n";
echo "что проверка данных формы даст нужный\n";
echo "результат (конечно, при условии\n";
echo "правильности вашей программы).</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При\n";
echo "обнаружении ошибки в данных необходимо\n";
echo "сообщить об этом пользователю и предложить\n";
echo "внести исправления. Существует несколько\n";
echo "возможных решений, в том числе простой\n";
echo "вывод сообщения об ошибке и предложение\n";
echo "альтернативных вариантов (например, если\n";
echo "пользователь выбирает имя, которое уже было\n";
echo "выбрано другим пользователем). В этом\n";
echo "разделе рассматривается процедура\n";
echo "проверки и вывода сообщений,</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 6:\n";
echo "вывод информации о пустых или ошибочно\n";
echo "заполненных полях формы</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Ни один\n";
echo "разработчик сайта не захочет раздражать\n";
echo "пользователя невразумительными\n";
echo "сообщениями об ошибках в данных — особенно\n";
echo "если пользователь запрашивает\n";
echo "дополнительную информацию о товаре или\n";
echo "оформляет покупку! Чтобы пользователь\n";
echo "понял, какие поля формы остались пустыми\n";
echo "или были заполнены неверно, сообщения\n";
echo "должны быть четкими и конкретными.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Мы\n";
echo "последовательно проверяем все поля формы и\n";
echo "убеждаемся в том, что они не остались\n";
echo "пустыми. Там, где это возможно, проверяется\n";
echo "правильность структуры введенных данных.\n";
echo "Если проверка прошла успешно, мы переходим\n";
echo "к следующему полю; в противном случае\n";
echo "программа выводит сообщение об ошибке,\n";
echo "устанавливает флаг, который позднее\n";
echo "используется для повторного отображения\n";
echo "формы, и переходит к следующему полю.\n";
echo "Процедура повторяется до тех пор, пока не\n";
echo "будут проверены все поля формы (листинг 10.8).</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.8. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Проверка\n";
echo "данных формы и вывод сообщений об ошибках</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing\n";
echo "10-8&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body bgcolor=&quot;#ffffff&quot;\n";
echo "text=&quot;#000000&quot; link=&quot;#cbda74&quot; vlink=&quot;#808040&quot;\n";
echo "alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Создать\n";
echo "форму</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$form = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action=\&quot;Listing10-8.php\&quot;\n";
echo "method=\&quot;post\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;hidden\&quot;\n";
echo "name=\&quot;seenform\&quot; value=\&quot;y\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;b&gt;Give us some\n";
echo "information!&lt;/b&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Name:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;name\&quot; size=\&quot;20\&quot; maxlength=\&quot;20\&quot; value=\&quot;$name\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Your Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input type=\&quot;text\&quot;\n";
echo "name=\&quot;email\&quot; s1ze=\&quot;20\&quot; maxlength=\&quot;40\&quot; value=\&quot;$email\&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input\n";
echo "type=\&quot;submit\&quot; value=\&quot;subscribe!\&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Заполнялась ли форма ранее?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($seenform != &quot;у&quot;):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;$form&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Пользователь заполнил форму. Проверить\n";
echo "введенные данные, else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$error_flag =\n";
echo "&quot;n&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Убедиться\n";
echo "в том. что поле имени содержит информацию</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($name ==\n";
echo "&quot;&quot;) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;font\n";
echo "color=\&quot;red\&quot;&gt;* You forgot to enter your name!</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/font&gt;\n";
echo "&lt;br&gt;&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$error_flag = &quot;y&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Убедиться\n";
echo "в том. что поле адреса содержит информацию</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($email ==\n";
echo "&quot;&quot;) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;font\n";
echo "color=\&quot;red\&quot;&gt;* You forgot to enter your email !</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/font&gt;\n";
echo "&lt;br&gt;&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$error_flag = &quot;y&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Преобразовать все алфавитные символы в\n";
echo "адресе</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// электронной почты к нижнему\n";
echo "регистру</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$email = strtolower(trim($email)):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Убедиться в\n";
echo "правильности синтаксиса</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// адреса\n";
echo "электронной почты</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (! @eregi('^[0-9a-z]+'.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">'([0-9a-z-]+\.)+'.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">'([0-9a-z]){2.4}$'. $email)) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;font\n";
echo "color=\&quot;red\&quot;&gt;* You entered an invalid email address!</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/font&gt;\n";
echo "&lt;br&gt;&quot; :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$error_flag = &quot;y&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если флаг\n";
echo "ошибки $error_flag установлен.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// заново\n";
echo "отобразить форму</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($error_flag ==\n";
echo "&quot;у&quot;) : print &quot;$form&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Обработать\n";
echo "данные пользователя</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;You entered\n";
echo "valid form information!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/html&gt;</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Программа\n";
echo "в листинге 10.8 убеждается в том, что поля\n";
echo "имени и адреса электронной почты не\n";
echo "остались пустыми, а также проверяет\n";
echo "правильность синтаксиса вве-, денного\n";
echo "адреса. Если в результате каких-либо\n";
echo "проверок в форме обнаруживаются ошибки,\n";
echo "программа выводит соответствующие\n";
echo "сообщения </font><i><font COLOR=\"#000000\">и </font></i><font COLOR=\"#000000\">отображает\n";
echo "форму заново — при этом вся введенная ранее\n";
echo "информация </font><i><font COLOR=\"#000000\">остается </font></i><font COLOR=\"#000000\">в\n";
echo "форме, благодаря чему пользователю будет\n";
echo "проще внести исправления. Если вывести\n";
echo "пустую форму и предложить пользователю\n";
echo "заполнить ее заново, он может отправиться</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">за\n";
echo "необходимым товаром или услугой в другое\n";
echo "место.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"i\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Динамическое\n";
echo "конструирование форм</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">До\n";
echo "настоящего момента я программировал все\n";
echo "формы вручную. Любому программисту\n";
echo "известно, что ручное кодирование — это\n";
echo "плохо, поскольку оно увеличивает\n";
echo "вероятность ошибок, не говоря уже о лишних\n";
echo "затратах времени.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "разделе я представлю сценарий, в котором\n";
echo "раскрывающийся список строится\n";
echo "динамически по содержимому массива. Этот\n";
echo "прием несложен, однако</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">он экономит\n";
echo "немало времени как при исходном\n";
echo "программировании, так и при последующем\n";
echo "сопровождении программы.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Пример 7:\n";
echo "построение раскрывающегося списка</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Предположим,\n";
echo "у вас имеется список сайтов, которые вы\n";
echo "хотите порекомендовать посетителю из-за\n";
echo "классного дизайна. Вместо того чтобы жестко\n";
echo "кодировать каждую строку списка, можно\n";
echo "создать массив и воспользоваться его\n";
echo "содержимым для заполнения списка.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В листинге\n";
echo "10.9, как и в предыдущих примерах, реализован\n";
echo "вариант с одним сценарием. Сначала мы\n";
echo "проверяем, было ли присвоено значение\n";
echo "переменной $site. Если проверка дает\n";
echo "положительный результат, вызывается\n";
echo "функция header( ) с параметром, в котором\n";
echo "значение $site присоединяется к строке «Location:http://».\n";
echo "При передаче этой команды функция header О\n";
echo "перенаправляет браузер на указанный URL.\n";
echo "Если значение переменной $site не задано,\n";
echo "форма выводится в браузере. Раскрывающийся\n";
echo "список строится в цикле, количество\n";
echo "итераций зависит от размера массива Sfavsites. В\n";
echo "листинге 10.9 я включил в этот массив пять\n";
echo "своих любимых сайтов. Конечно, вы можете\n";
echo "добавить в него сколько угодно своих сайтов.</font></p>\n";
echo "<p><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><img border=\"0\" src=\"Attent.gif\" align=left width=\"36\" height=\"35\">Запомните\n";
echo "одно важное обстоятельство — функция header( )\n";
echo "должна вызываться до вывода данных в\n";
echo "браузере. Ее нельзя просто вызвать в любой\n";
echo "точке сценария РНР. Несвоевременные вызовы\n";
echo "header( ) порождают столько проблем у неопытных\n";
echo "программистов РНР, что я рекомендую\n";
echo "повторить это правило раз пять, чтобы лучше\n";
echo "запомнить его.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.9. </font></font></b><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Динамическое\n";
echo "построение раскрывающегося списка</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($site !=\n";
echo "&quot;&quot;) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">header(&quot;Location:\n";
echo "http://Ssite&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">exit;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;Listing\n";
echo "10-9&lt;/Fit1e&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body\n";
echo "bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot; Iink=&quot;#cbda74&quot;\n";
echo "vlink=&quot;#808040&quot; alink=&quot;#808040&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$favsites = array\n";
echo "(&quot;www.k10k.com&quot;. &quot;www.yahoo.com&quot;,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&quot;www.drudgereport.com&quot;,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&quot;www.phprecipes.com&quot;,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&quot;www.frogdesign.com&quot;):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Создать\n";
echo "форму</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form action =\n";
echo "&quot;Listing10-9.php&quot; method=&quot;post&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;select\n";
echo "name=&quot;site&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;option value =\n";
echo "&quot;&quot;&gt;Choose a site:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$х = 0:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">while ( $х &lt; sizeof\n";
echo "($favsites) ) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;option\n";
echo "value='$favsites[$x]'&gt;$favsites[$x]&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$x++;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endwhile;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/select&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input\n";
echo "type=&quot;submit&quot; value=&quot;go!&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Динамическое\n";
echo "конструирование форм особенно удобно при\n";
echo "обработке больших объемов данных, которые в\n";
echo "любой момент могут измениться, что приведет\n";
echo "к устареванию всей жестко закодированной\n";
echo "информации форм. Впрочем, я рекомендую\n";
echo "жестко кодировать все статические данные (например,\n";
echo "список штатов США), поскольку это ускорит\n";
echo "работу программы.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"j\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Проект:\n";
echo "гостевая книга</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">С первых\n";
echo "дней World Wide Web разработчики сайтов\n";
echo "стремились к тому, чтобы посетители могли\n";
echo "поделиться своими мыслями и комментариями\n";
echo "по поводу сайта. На сайтах эта возможность\n";
echo "обычно называется «гостевой книгой» (guestbook).\n";
echo "Я покажу, как легко создать гостевую книгу\n";
echo "при помощи форм HTML, средств обработки форм\n";
echo "РНР и текстового файла.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Прежде всего\n";
echo "создается инициализационный файл,\n";
echo "содержащий некоторые глобальные\n";
echo "переменные и функции приложения (листинг\n";
echo "10.10).</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.10. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Файл\n";
echo "init.inc, используемый при создании гостевой\n";
echo "книги</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Файл: init.inc</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Назначение:\n";
echo "глобальные переменные и функции для\n";
echo "проекта гостевой книги</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Заголовок\n";
echo "страницы по умолчанию</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$title = &quot;My Guestbook&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Цвет фона</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$bg_color =\n";
echo "&quot;white&quot;: /</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Гарнитура\n";
echo "шрифта</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$font_face =\n";
echo "&quot;Arial, Verdana, Times New Roman&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Цвет\n";
echo "шрифта</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$font_color =\n";
echo "&quot;black&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Дата\n";
echo "отправки $post_date - date(&quot;M d y&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Файл\n";
echo "данных гостевой книги</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$guest_file =\n";
echo "&quot;comments.txt&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Функция\n";
echo "читает данные гостевой книги</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//и отображает\n";
echo "их в браузере</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">function view_guest($guest_file) {</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">GLOBAL $font_face,\n";
echo "$font_color;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Return to\n";
echo "&lt;a\n";
echo "href=\&quot;index.php\&quot;&gt;index&lt;/a&gt;,&lt;br&gt;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если в\n";
echo "файле гостевой книги имеются данные...</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if\n";
echo "(filesize($guest_file) &gt; 0) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Открыть\n";
echo "файл данных гостевой книги</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$fh =\n";
echo "fopen($guest_file. &quot;r&quot;) or die(&quot;Couldn't open $guest_file&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;table\n";
echo "border=1 cellpadding=2 cellspacing=0 width=\&quot;600\&quot;&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Повторять\n";
echo "до конца файла</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">while (! feof($fh)) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Прочитать\n";
echo "следующую строку</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$line &lt;= fgetsdfh, 4096);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Разбить\n";
echo "строку на компоненты</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// и\n";
echo "присвоить каждый компонент переменной</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">list($date. $name,\n";
echo "$email, $comments) = explode(&quot;|&quot;, $line):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если\n";
echo "указано имя посетителя, вывести его</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ($name !=\n";
echo "&quot;&quot;) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;tr&gt;&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_co!or\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">face=\&quot;$font_face\&quot;&gt;Date:&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">face=\&quot;$font_face\&quot;&gt;$date&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;/tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&nbsp;face=\&quot;$font_face\&quot;&gt;Name:&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&nbsp;face=\&quot;$font_face\&quot;&gt;$name&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;/tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&nbsp;face=\&quot;$font_face\&quot;&gt;Email:&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&nbsp;face=\&quot;$font_face\&quot;&gt;$email&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;/tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;td\n";
echo "valign=\'top\&quot;&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">face=\&quot;$font_face\&quot;&gt;Message:&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;td&gt;&lt;font color=\&quot;$font_color\&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">face=\&quot;$font_face\&quot;&gt;$comments&lt;/font&gt;&lt;/td&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;/tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;tr&gt;&lt;td\n";
echo "colspan=\&quot;2\&quot;&gt;&amp;nbsp:&lt;/td&gt;&lt;/tr&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endwhile;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;/table&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Закрыть\n";
echo "файл</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">fclose($fh);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;h3&gt;Currently there are no entries in the\n";
echo "guestbook!&lt;/h3&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">} // view_guest</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Функция\n";
echo "сохраняет новую информацию в файле данных</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">function\n";
echo "add_guest($name, $email, $comments) {</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">GLOBAL $post_date,\n";
echo "$guest_file;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Отформатировать данные для ввода ,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$contents =\n";
echo "&quot;$post_date|$name|$email |$comments\n&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Открыть\n";
echo "файл данных</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$fh =\n";
echo "fopen($guest_file. &quot;a&quot;) or dieC'Could not open $guest_file!&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Записать\n";
echo "данные в файл</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$wr = fwrite($fh,\n";
echo "$contents) or die(&quot;Could not write to $guest_file!&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Закрыть\n";
echo "файл fclose($fh);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">} // add_guest</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Затем\n";
echo "создаются еще три файла: файл ссылок index.php,\n";
echo "файл add_guest.php для вывода информации гостевой\n";
echo "книги и файл view_guest.php для ввода новых данных.\n";
echo "Файл index.php (листинг 10.11) просто отображает\n";
echo "две ссылки для выполнения основных функций\n";
echo "гостевой книги — просмотра и добавления\n";
echo "новых данных. Эти ссылки легко включаются в\n";
echo "сайт, имеющий более сложную структуру.</font></p>\n";
echo "<i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><b>Листинг 10.11.</b>\n";
echo "Файл index.php со ссылками для просмотра и\n";
echo "добавления новых данных в гостевую книгу</font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">INCLUDE(&quot;init.inc&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;&lt;?=$page_title;?&gt;&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body\n";
echo "bgcolor=&quot;&lt;?=$bg_color;?&gt;&quot; text=&quot;#000000&quot;\n";
echo "link=&quot;#808040&quot; vlink=&quot;#808040&quot; alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;a\n";
echo "href=&quot;view_guest.php&quot;&gt;View the guestbook!&lt;/a&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;a\n";
echo "href=&quot;add_guest.php&quot;&gt;Sign the guestbook!&lt;/a&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/body&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Файл view_guest.php\n";
echo "(листинг 10.12) выводит всю информацию\n";
echo "гостевой книги, хранящуюся в файле данных.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.12. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Файл\n";
echo "view_guest.php</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">INCLUDE(&quot;init.inc&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;t1tle&gt;&lt;?=$page_title;?&gt;&lt;/t1tle&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body\n";
echo "bgcolor=&quot;&lt;?=$bg_color:?&gt;&quot; text=&quot;#000000&quot; link=&quot;\n";
echo "vlink=&quot;#808040&quot; alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">vi ew_guest ( $guest_file );</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Файл add_guest.php\n";
echo "(листинг 10.13) запрашивает у пользователя\n";
echo "новые данные для внесения в гостевую книгу.\n";
echo "Введенная информация записывается в файл\n";
echo "данных.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "10.13. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Файл\n";
echo "add_guest.php</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">INCLUDE(&quot;init.inc&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;&lt;?=$page_title:?&gt;&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;body\n";
echo "bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot; link=&quot;#808040&quot;\n";
echo "vlink=&quot;#808040&quot; alink=&quot;#808040&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&lt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если форма\n";
echo "еще не отображалась - запросить данные у\n";
echo "пользователя</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (! $seenform) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;form\n";
echo "action=&quot;add_guest.php&quot; method=&quot;post&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input\n";
echo "type=&quot;hidden&quot; name=&quot;seenform&quot; value=&quot;y&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Name:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input\n";
echo "type=&quot;text&quot; name=&quot;name&quot; size=&quot;15&quot;\n";
echo "maxlength=&quot;30&quot; value=&quot;&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Email:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input\n";
echo "type=&quot;text&quot; name=&quot;email&quot; size=&quot;15&quot;\n";
echo "maxlength=&quot;35&quot; value=&quot;&quot;&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Comment: &lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;textarea\n";
echo "name=&quot;comment&quot; rows=&quot;'3&quot;\n";
echo "cols=&quot;40&quot;&gt;&lt;/textarea&gt;&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;input\n";
echo "type=&quot;submit&quot; value=&quot;submit&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/form&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Форма уже\n";
echo "отображалась - добавить данные в текстовый\n";
echo "файл.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">add_guest($name, $email,\n";
echo "$comment);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print\n";
echo "&quot;&lt;h3&gt;Your comments have been added to the guestbook.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;a\n";
echo "href=\&quot;index.php\&quot;&gt;Click here&lt;/a&gt; to return to the index.\n";
echo "&lt;/h3&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">К числу\n";
echo "основных преимуществ модульной разработки\n";
echo "приложений относится простота адаптации\n";
echo "для других систем. Допустим, вы решили\n";
echo "перейти от хранения данных в текстовом\n";
echo "файле к использованию базы данных. Стоит\n";
echo "изменить содержимое add_guest( ) и view_guest( ), и ваша\n";
echo "гостевая книга перейдет на работу с базой\n";
echo "данных.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">На рис. 10.8\n";
echo "показано, как выглядит гостевая книга после\n";
echo "сохранения пары записей.</font></p>\n";
echo "<p>&nbsp;<img border=\"0\" src=\"10.8.jpg\" width=\"459\" height=\"221\"></p>\n";
echo "<p><b><i><font COLOR=\"#000000\">Рис. 10.8. </font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Просмотр\n";
echo "гостевой книги (view_guest.php)</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Информация,\n";
echo "показанная на рис. 10.8, хранится в файле\n";
echo "данных в следующем виде:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Oct 29\n";
echo "00|Michele|michelle@latorre.com|I love cheese!</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Oct 29 00|Nino|nino@latorre.com|Great\n";
echo "site!</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"k\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Итоги</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Обработка\n";
echo "данных форм принадлежит к числу сильнейших\n";
echo "сторон РНР, поскольку простота и надежность\n";
echo "сочетаются в ней с одним из важнейших\n";
echo "аспектов любого сайта — интерактивностью.\n";
echo "В этой главе рассматривался широкий круг\n";
echo "вопросов, относящихся к формам и роли РНР в\n";
echo "обработке данных форм, в том числе:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">общие\n";
echo "сведения о синтаксисе форм;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">передача\n";
echo "данных форм между сценариями РНР;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">обработка\n";
echo "форм в одном сценарии;</font></li>\n";
echo "  <li><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">функция\n";
echo "    mail(\n";
echo "); </font></font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">отправка\n";
echo "данных формы по электронной почте;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">автоматическая\n";
echo "обработка пользовательских запросов на\n";
echo "получение информации;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">сохранение\n";
echo "данных пользователя в текстовом файле;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">проверка\n";
echo "ошибок;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">динамическое\n";
echo "конструирование форм.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если вы\n";
echo "собираетесь работать со сколько-нибудь\n";
echo "заметными объемами информации, одним из\n";
echo "первых шагов на этом пути должна стать\n";
echo "интеграция базы данных в структуру сайта.\n";
echo "Эта тема рассматривается в следующей главе.</font></p>\n";
echo "<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000066\" class=\"mtx1\">\n";
echo "<tr>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../Chapter 9/1.htm\"><strong>&lt;&lt;&lt;&nbsp;Назад</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../index.html\"><strong>Содержание</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../Chapter 11/1.htm\"><strong>Вперед&nbsp;&gt;&gt;&gt;</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</BODY></HTML>\n";
?>
