"Тайны и секреты компьютера" - читать интересную книгу автора (Орлов Антон)Глава 19. PHP: интерактивность в действииКогда-то давно, еще в прошлом веке, для того, чтобы сделать сайт "на мировом уровне", достаточно было просто уметь делать web-страницы на HTML и обладать художественным вкусом. Спустя некоторое время требования усложнились: использование JavaScript и Dynamic HTML стало рутинным и дизайн сайта, не имеющего подобных «украшений», считался устаревшим. Вскоре правилом "хорошего тона" для корпоративного сайта стало применение сложных программ на Perl или C++, а создавать такие сайты стало по силам лишь крупным дизайнерским студиям. Однако простые web-дизайнеры не желали мириться с такой ситуацией. И на свет появился PHP — язык программирования, обладающий возможностями сложных скриптовых языков, но в то же время удивительно простой и легкий в изучении и применении. О нем и пойдет дальше рассказ. Определения Web-программирование — разработка любых программных продуктов, предназначенных для работы на сайтах World Wide Web. Строго говоря, даже разработка web-страниц на чистом HTML является web-программированием, ведь при просмотре страницы браузер фактически исполняет код HTML, форматируя текст согласно инструкциям этого языка. В настоящее время под web-программированием понимают создание CGI-приложений и использование на web-странице технологий JavaScript и VBScript для достижений сложных эффектов. Web-сервер — программа, запущенная на узле сети Интернет и выдающая посетителям этого узла web-страницы с него по их запросам. Также web-сервером часто называется узел, на котором эта программа запущена, или даже компьютер, являющийся таким узлом. CGI (сокращение от Common Gateway Interface) — технология, позволяющая запускать на web-сервере программы, могущие получать данные от посетителей сайтов, поддерживаемых этим web-сервером, и в свою очередь выдавать им обработанные данные в виде web-страниц или других файлов. Для использования технологии CGI программа-web-сервер должна удовлетворять определенным критериям — "поддерживать CGI". Если программа, запускаемая на web-сервере, представлена не двоичным кодом (т. е. скомпилированным файлом), а текстовым, то для ее выполнения требуется программа-интерпретатор того языка, на котором написана эта программа. Такой интерпретатор включается в состав web-сервера и вызывается им при необходимости заняться выполнением программного кода. CGI-сценарий (CGI-скрипт) — программа (в текстовом виде), предназначенная для исполнения на web-сервере. Для создания CGI-скриптов можно использовать любой язык программирования — важно лишь, чтобы на том web-сервере, где предполагается эту программу запускать, имелся интерпретатор этого языка. В настоящее время наиболее частоиспользумыми языками CGI-программирования являются PHP, Perl, C++. Web-программирование Все языки программирования, используемые при разработке web-сайтов, можно разделить на две большие группы. К первой будут относиться те из них, код которых выполняется на компьютере посетителя сайта — в его браузере. Это известные всем JavaScript, VBScript, Java-апплеты. Программы на этих языках встраиваются в код web-страниц (или выносятся в отдельный файл с вызовом из web-страниц, но браузер все равно обрабатывает такие вынесенные программы как если бы они были встроены в код страницы). Во вторую же группу можно включить те языки, программы на которых выполняются на том компьютере, где расположен web-сервер. Эта группа будет гораздо более обширной, — дело в том, что в принципе на web-сервере могут исполняться программы на любом языке (даже командных. bat-файлов MS-DOS), важно лишь, чтобы на нем была установлена программа-интерпретатор этого языка, удовлетворяющая особым требованиям — стандарту CGI, которым также должен удовлетворять сам web-сервер. PHP относится ко второй группе — программа на PHP исполняется на web-сервере. Однако от других CGI-языков PHP очень сильно отличается в лучшую сторону, — прежде всего своей простотой. Создавая программы на PHP, нет необходимости учитывать все те многочисленные мелочи, которые отравляют жизнь программистам на Perl или C++: не надо заботиться о правах доступа к файлам сценария, не надо прописывать точные пути к различным модулям, нет необходимости следить за отсутствием в файле скрипта недопустимых символов. Синтаксис языка таков, что он допускает его легкое освоение как начинающим программистом, так и тем, кто уже использовал ранее какой-либо язык программирования. Для тестирования PHP-программ на локальном компьютере необязательно устанавливать на нем ту же операционную систему, что и у провайдера хостинга сайта, где эти программы будут применяться, — достаточно лишь установить соответствующей web-сервер и подключить к нему модуль PHP. Можно целиком и полностью сосредоточиться на решаемой задаче и не думать о мелочах. Именно это и делает PHP весьма хорошим выбором для web-дизайнера, который, начав его использовать, может вообще забыть о каких-либо других CGI-языках. Немного истории В отличие от многих других языков программирования, PHP был создан не какой-либо корпорацией или гением-программистом, а обычным пользователем, Расмусом Лердорфом, в далеком 1994 году. Цель разработки языка была проста — сделать домашнюю страничку Расмуса более интерактивной, а значит, и более привлекательной для посетителей. Расмус разработал базовый синтаксис и написал первый интерпретатор своего языка, получившего название Personal Home Page Tools — т. е. PHP. Этот интерпретатор мог обрабатывать лишь несколько основных команд, однако начало было положено. В 1995 году Расмус доработал интерпретатор PHP, соединив его с другой своей программой, умевшей обрабатывать HTML-формы (именовавшейся FI — от "Form Interpretator"), а также сделал так, что интерпретатор, получивший название PHP/FI Version 2, мог становиться частью web-сервера. Последнее сделало программы на PHP очень быстроисполняющимися. Кроме того, в том же 1995 году интерпретатор PHP был дополнен возможностями обработки новых команд, в частности, функций работы с сервером баз данных MySQL и автоматического создания gif-файлов (последнее, к примеру, может быть использовано для генерации кнопок-счетчиков посещений). PHP/FI был размещен в Сети для всеобщего использования, и началось его повсеместное распространение. Web-мастера быстро оценили достоинства нового языка web-программирования — легкость освоения и богатство возможностей, и вскоре традиционные Perl, C++ стали сдавать ему свои позиции. Так как исходный код интерпретатора был открыт (а сам он, ясное дело, бесплатен), то энтузиасты стали заниматься его доработкой, и летом 1998 года появился на свет PHP3 — детище Зива Сураски и Энди Гутманса (Zeev Suraski and Andi Gutmans). В этой версии интерпретатора были исправлены баги предыдущей версии и добавлены новые функции, что еще больше поспособствовало его победному шествию по миру. Уже к концу 1999 года число сайтов, построенных на основе PHP, перевалило за миллион. Весьма важным достоинством PHP также являлось то, что его можно было использовать в различных операционных системах — от Windows до Unix и Linux. В 2000-м году вышла четвертая версия интерпретатора PHP, разработанная компанией Zend Technologies, дополненная множеством новых функций. В настоящее время именно она является наиболее распространенной. С чего начать? Основным источником сведений по PHP является официальный сайт его разработчиков — www.php.net. Однако тем, кто желает разработать сайт с применением PHP, лучше прежде всего посетить русский сайт "PHP по-русски", расположенный по адресу http://php.spb.ru, и загрузить с него два файла — полное описание PHP на русском языке (точный перевод руководства по PHP с сайта www.php.net) и web-сервер Apache с PHP-модулем, сконфигурированным для немедленного использования. Оба файла подготовил и разместил в Сети ведущий этого сайта Дмитрий Бородин. Готовый к использованию web-сервер вместе с интерпретатором PHP, а также системой управления базами данных MySQL вы также можете найти на сайте проекта «Денвер», расположенном по адресу http://dklab.ru/chicken/web. В отличие от вышеупомянутого ресурса "PHP по-русски", ведущие проекта "Денвер" Дмитрий Котеров, Дмитрий Короленко, Игорь Светликов и Андрей Любченко регулярно обновляют свой проект, постоянно размещая на нем свежие версии web-сервера с набором компонентов. Однако установка «Денвера» более автоматизирована, нежели набора с сайта "PHP по-русски", и предусматривает значительно меньшую ее «управляемость». "Денвер" можно порекомендовать тем, кто предпочитает автоматически получить на своем компьютере готовый к использованию web-сервер в целях изучения языка PHP и создания на нем программ, а "PHP по-русски" понравится тому, кто привык все, что ему надо, настраивать сам. Тем более что последнее будет весьма легко — достаточно внимательно прочитать комментарий Дмитрия с сайта и файлы Readme из дистрибутива. Итак, первым делом установите на своем компьютере web-сервер Apache — из «Денвера» или "PHP по-русски" и освойте его использование. После этого вы сможете полноценно работать с программами на PHP на своем компьютере, не выходя в Интернет, например, тестировать разработанные с использованием PHP сайты. Ну, а затем приступайте к изучению языка. В этой главе книги изложены самые основные его понятия и описаны базовые команды, с помощью которых можно создать неплохие PHP-программы. За остальной информацией обращайтесь к описанию языка, тем более что оно переведено на русский язык и снабжено массой примеров кода. Только помните, что в том дистрибутиве web-сервера, о котором говорилось выше, отсутствуют модули, расширяющие возможности PHP, так что некоторые разделы описания будут неактуальны. Впрочем, ничего не мешает вам загрузить нужные модули отдельно и установить их (на сайте http://php.spb.ru описано, как это сделать), однако первое время такая необходимость у вас вряд ли появится. На сайте http://phpclub.unet.ru вы найдете множество примеров сценариев на PHP, сможете загрузить литературу на русском языке, получить от профессионалов в web-программировании ответ на свой вопрос или принять участие в каком-либо обсуждении или пообщаться с коллегами в чате. Архив Форума, расположенного на этом сайте, содержит в себе ответы практически на все мыслимые и немыслимые вопросы по web-программированию на PHP. Также здесь регулярно публикуются новости мира PHP-программирования, рассказывается о новых разработках в этой области, размещается информация о вакансиях web-дизайнеров и программистов на рынке труда. Также немало полезной информации есть в Web-клубе по адресу http://www.webclub.ru/materials/php3, в частности, руководство по PHP, представленное на сайте "PHP для всех", изначально размещалось именно там. Для написания кода на PHP подходит любой текстовый редактор — от «Блокнота» до "Script Editor'а" из пакета Microsoft Office, здесь выбор зависит от вашего личного вкуса и желания. В RuNet'е использовать PHP разрешается, например, на таких бесплатных серверах, как http://www.h1.ru, http://meridian.tomsk.ru, http://webservis.ru, http://www.hut.ru, http://wallst.ru, на иностранных — http://www.saxen.net и других. Однако при выборе бесплатного хостинга для размещения сайта помните, что в подавляющем большинстве случаев вам придется в обязательном порядке размещать на своих страницах рекламные баннеры (за их показ на вашем сайте компании, владеющей сервером хостинга, рекламодатели платят деньги, которые, собственно, и служат оплатой поддержки размещенных на этом сервере сайтов). Кроме того, весьма часто владельцы хостингов с поддержкой PHP и других CGI-языков запрещают размещать на сайтах, расположенных у них, файлы zip, rar, exe, mp3. Впрочем, последнее условие можно обойти, использовав для хранения таких файлов другой бесплатный сервер, — пусть и без поддержки PHP. На рынке платного хостинга ситуация другая — сейчас уже трудно найти хостинг, где бы не предлагали использовать PHP. Тарифные планы, не предполагающие использование PHP, сохранились разве что у некоторых провайдеров услуг доступа в Интернет, параллельно предоставляющих и услугу размещения web-сайтов за отдельную плату. Так что для построения сайтов, использующих PHP, можно выбирать практически любой сервер платного хостинга, оценивая его по различным другим критериям (цена, надежность, скорость и т. д.). Достаточно трудно рекомендовать какую-либо определенную фирму, однако можете попробовать ValueHost (www.valuehost.ru), www.350mb.ru, www.net.ru и другие. Более подробно о PHP вы можете узнать из специализированной литературы, например, из книги "PHP: полезные приемы", готовящейся в настоящее время к выходу в свет в издательстве "Горячая линия — Телеком". При подготовке данной главы использовались материалы из этой книги. Ниже будет рассказано об основах PHP. Весь нижеследующий текст рассчитан на тех, кто имеет хотя бы общее представление о программировании и может понять принципы работы с PHP на основании сравнения его с другими языками. Если такового опыта у вас нет, то для изучения PHP воспользуйтесь специальной литературой или Интернет-публикациями — к сожалению, делать книгу об Интернете еще и учебником по программированию у нас возможности нет. Основы языка Синтаксис PHP прост. Программы на PHP встраиваются в текст web-страницы так же, как и сценарии на JavaScript, VBScript, — окаймляясь угловыми скобками с указанием языка: lt;?php… текст программы… gt;. Команды PHP обязательно разделяются символом точки с запятой — ";" (символы конца абзаца или конца строки не учитывается никак), после последней в программе команды его можно не ставить. Также символ";" не ставится после условных операторов и операторов цикла. Пример программы на PHP вы можете увидеть на рис. 19.1. Как и во всех языках программирования, в PHP есть возможность работать с переменными — некиими обьектами, имеющими имя и могущими принимать различные значения. Однако работа с переменными в PHP, пожалуй, самая легкая из всех возможных. Переменные не надо заранее обьявлять (если не знаете, что это такое — и не надо), за исключением использования их в функциях, для введения новой переменной достаточно просто присвоить ей какое-либо значение, а для помещения значения переменной в строку текста, имя файла или параметр команды нужно просто написать ее имя в том месте, где должно быть ее значение. Чтобы PHP мог отличать переменные от строк или команд, ее имя должно начинаться со знака доллара — "$" и не должно содержать пробелов или знаков апострофа и некоторых других. При анализе программного кода интерпретатор PHP считает именем переменной все, что содержится между $ и ближайшим к нему символом, недопустимым в имени переменной. Переменные в PHP могут быть четырех типов — число (целое и дробное), строка текста, массив и обьект. Интерпретатор PHP автоматически определяет тип переменной на основании анализа ее содержимого. Подробнее о типах данных вы можете узнать в руководстве по PHP, там же рассказано и об особенностях работы с массивами (и вообще обьяснено, что это такое, если вы еще не знаете). Помните, что для включения переменной в строку текста нельзя использовать символ "+" — он пригоден лишь для числовых выражений. Достаточно просто поместить переменную туда, где она должна стоять — например, в итоге выполнения кода Довольно часто используются сокращенные обозначения арифметических действий над переменными и действий по присваиванию им каких-либо значений. Например, команда Ниже будут перечислены некоторые основные команды PHP, которых вполне хватит для реализации несложных проектов. Для более полного ознакомления с командами PHP можно изучить Руководство по этому языку, доступное, например, с адреса http://php.spb.ru или другие публикации. · · · · Для того, чтобы выполнять различные команды в зависимости от условия, могущего принимать три или больше значений, следует использовать оператор · Также в PHP можно использовать циклы без открытого обьявления числа повторений — Программа на PHP может прерываться кодом web-страницы, — для этого достаточно вставить закрывающий тэг до этого кода и открывающий — после. Все, что находится между ними, будет выдаваться в браузер без какой-либо обработки, рассматриваясь как выводимое с помощью команды lt;?php if ($a==1) {?gt;lt;pgt;Переменная а равна 1lt;/pgt;lt;?php }?gt; эквивалентен коду lt;?php if ($a==1) {echo "lt;pgt; Переменная а равна 1lt;/pgt;";}?gt;, однако первый вариант меньше нагружает процессор компьютера, на котором расположен интерпретатор PHP. Из сказанного также следует, что все программы на PHP, расположенные на одной web-странице, представляют из себя одну большую программу, — несмотря на то, что они разделяются блоками обычного текста страницы. Именно поэтому переменная, обьявленная в расположенном в начале страницы коде, сохраняет свое значение не только до ее конца, но и во всех присоединяемых с помощью команды Рис. 19.1. Однако помните, что если вы создаете функцию на PHP (попросту вставляя в программу инструкцию Обычно web-сервер настраивается так, что на предмет наличия программ на PHP просматриваются файлы, имеющие расширение. php, phtml, остальные же файлы передаются в браузер пользователя без поиска в них команд PHP. Делается так для более быстрой работы сервера, а также для обеспечения возможности установки на сервере разных интерпретаторов (например, SSI — Server Side Includes, в технологии, в какой-то мере предшествовавшей PHP), так как тогда каждому из интерпретаторов назначаются свои расширения для обработки соответствующих файлов. Так как PHP-код полностью исполняется на web-сервере, то в страницах, выдаваемых браузеру, он будет отсутствовать, и если кто заинтересуется вашим опытом программирования, то вам придется отправлять ему этот код по почте, так как при просмотре сайта каким-нибудь образом узнать исходный PHP-код его страниц нельзя. Работа с формами Значения переменных можно передавать между различными страницами сайта — с помощью использования форм. Формой называется конструкция, состоящая из поименованных элементов особых типов, заключенных между HTML-тэгами lt;form…gt; и lt;/formgt;. В качестве элементов формы могут выступать поля ввода текста, кнопки, выпадающие меню, переключатели, квадратики для отметки галочкой — checkbox'ы, а также картинки формата jpg или gif. Наиболее важным свойством формы является то, что в ее заголовке — в открывающем тэге lt;form…gt; можно указать адрес какого-либо файла, и тогда при его загрузке в программный код этого файла, если он будет там присутствовать, передадутся значения всех переменных, установленных в этой форме — в частности, значения всех элементов формы, как если бы эти значения были установлены в программе, расположенной в самом загружаемом файле. Таким образом можно передавать значения переменных между различными web-страницами, используя их в программном коде. Имена переменных соответствуют тем именам, которые были даны элементам формы в их тэгах, а значения — соответственно значениям этих элементов: для поля ввода текста — введенному тексту, для переключателя или checkbox'а — True при отмеченном и False при неотмеченном, для рисунка — координаты указателя мыши относительно верхнего левого угла изображения, для выпадающего меню (элемент lt; Пример создания и применения формы приведен ниже, в разделе "Практическое использование". Зачем он нужен? Можно спросить: а зачем же может вообще потребоваться PHP? Разве обычных HTML и пары JavaScript не достаточно для создания красивой web-страницы? Ну, во-первых, PHP может очень серьезно облегчить работу создателя сайта. С помощью команды Работа web-мастера по поддержке сайта при использовании PHP заметно облегчается. К примеру, немного поработав, можно сделать сценарий, «пробегающий» по всем файлам в каком-либо каталоге и «вытаскивающий» оттуда какие-либо фрагменты (например, содержимое тэгов «meta» — функция С помощью PHP можно серьезно облегчить частое обновление страницы — так, если страница содержит часто меняющуюся вставку (например, новости), то будет неплохо поместить на место этих новостей инструкцию Помощь web-мастеру и службе поддержки web-ресурса — это лишь весьма малая часть функций PHP. Используя PHP, можно обогатить сайт огромным количеством новых возможностей, делающих его удобным и нужным для посетителя. Так, с помощью функции Одним из наиболее заметных достоинств PHP является возможность легкой работы с серверами баз данных. Ранее, до появления этого языка, задание, выражающееся словами "приделать базу данных к web-странице", было довольно трудным и малодоступным для начинающих web-дизайнеров. Приходилось либо самостоятельно разрабатывать хитроумные скрипты, взаимодействующие как с программой управления базой данных, так и с web-страницами сайта, либо закупать их у фирм-разработчиков. С помощью же PHP использование базы данных на сайте стало чуть ли не элементарным. Для работы с подавляющим большинством типов баз данных в PHP есть встроенные функции, поэтому теперь для достаточно лишь установить на web-сервере программу работы с базой данных (наиболее часто используется бесплатная MySQL — http://www.mysql.com) и включить в текст PHP-сценария команды работы с нею (их список приведен в описании языка вместе с примерами использования). Возможности PHP можно весьма серьезно расширить с помощью дополнительных модулей, содержащих различные функции. Эти модули при необходимости размещаются на web-сервере, на котором установлен PHP-интерпретатор. Их можно загрузить с адреса http://www.php.net, там же в разделе документации приведено и полное их описание. (В том web-сервере с установленным PHP, который распространяется с сайта http://php.spb.ru, никаких дополнительных модулей нет для уменьшения размера дистрибутива.) Например, модуль Zlib позволяет работать из программы на PHP с архивами в формате Gzip, а модуль libswf — с Flash-презентациями, создавая их и редактируя прямо из программы на сервере. Так как PHP — развивающийся язык, то новые модули появляются довольно часто, однако использовать их можно лишь после установки на web-сервер, что провайдеры хостинговых услуг могут не сделать. Поэтому при желании использовать функции из какого-либо модуля нужно сначала проверить, поддерживает ли их web-сервер, на котором вы собираетесь размещать сайт. Сделать это можно, либо разместив на сервере страницу со строчкой lt;?php phpinfo()?gt; и загрузив ее с сервера в браузер (на ней будет отображена информация о версии PHP, параметрах web-сервера и многом другом, в том числе дополнительных модулях), либо попросту задав вопрос группе технической поддержки сервера. PHP можно использовать и для написания полноценных программ, работающих и на локальном компьютере и не требующих для своего выполнения ни браузера, ни web-сервера. В этом случае вместе с программой должен поставляться также и интерпретатор этого языка. Однако рассмотрение такого способа его применения выходит за рамки и этой книги, и большинства общедоступных руководств. Практическое использование. Вот несколько примеров использования PHP на реальных сайтах, существующих в российском Интернете. Выборочная загрузка 1. Сайт www.harchikov.ru посвящен творчеству популярного певца-барда Александра Харчикова. На сайте должны были быть представлены вышедшие альбомы певца в количестве 15 штук и записи песен каждого альбома в MP3-формате. При создании сайта возникла необходимость обеспечить удобную навигацию. Общепринятый способ — ссылки на страницы с описанием каждого из альбомов и песнями из него — имел тот недостаток, что посетитель, желающий просмотреть не один альбом, а сразу несколько, был бы вынужден постоянно переходить со страницы на страницу, делая лишние усилия. Кроме того, в случае разрыва связи во время загрузки какого-либо файла посетитель, ушедший на другую страницу, был бы вынужден снова возвращаться на ту, с которой он этот файл загружать начал, тратя время на ее поиск. Недостаток другого варианта — размещения информации о всех альбомах на одной странице — ясен: размер этой страницы получился бы очень большим, а интересная посетителю информация могла бы занимать лишь небольшую ее часть. Поэтому было сделано так. На главной странице разместилась форма, а у каждого названия альбома — checkbox, внизу же страницы — кнопка перехода на список альбомов. Посетитель мог отметить заинтересовавшие его альбомы (рис. 19.2), и после нажатия кнопки перехода PHP-сценарий выводил ему страницу с описаниями лишь тех альбомов, которые посетитель выбрал (рис. 19.3). Сделано это просто. Рис. 19.2. Рис. 19.3. Все checkbox'ы заглавной страницы сайта имеют свои имена: lt;INPUT type=submit value="Вывести оглавления отмеченных альбомов"gt; Загрузив заглавную страницу сайта www.harchikov.ru, можно легко изучить ее структуру. В файле же albm.php помещена простая программа, выглядящая так: lt;?php if ($bar01==True) {include ("bar01.php"); } if ($bar02==True) {include ("bar02.php"); } … по строке на каждый альбом… ?gt; В файлах Удивительно, что этот простейший прием в настоящее время практически не применяется на сайтах Сети — используется традиционная схема размещения информации со множеством ссылок на отдельные разделы. А ведь как удобно — например, на сайте Александра Харчикова можно выбрать альбомы, сгенерировать себе страницу со ссылками на песни из них и, заходя на нее, постепенно загружать песни или передать весь список ссылок на файлы в какую-нибудь из программ-"качалок". Или, скажем, на сайте фирмы «Экон-Профи» (www.econprofi.ru) точно так же сделан раздел "Вопросы и ответы" (рис. 19.4), — отметив интересующие вопросы на странице раздела, можно получить подробные консультации исключительно по выбранным темам. Полученная страница и загрузится быстрее, да и при ее распечатке лишней бумаги тратить не потребуется. Рис. 19.4. Данную схему, разумеется, можно доработать. Опыт показывает, что посетители чаще всего предпочитают просмотреть либо два-три выбранных раздела, либо все разделы сразу. В последнем случае им придется отмечать все checkbox'ы страницы, что занимает время и силы. Поэтому стоит поместить на страницу еще и кнопку вывода сразу всех разделов — "Просмотреть все". Ей можно назначить гиперссылку с адресной строкой, содержащей все переменные в значении Интернет-магазин 2. С помощью PHP можно легко сделать мини-Интернет-магазин — т. е. установить на сайт форму заказа, которая будет отправляться вам по электронной почте. При этом почтовая программа посетителя использоваться не будет — ему даже необязательно вообще ее иметь. К примеру, такой "виртуальный магазин" аудиокассет сделан на странице http://www.harchikov.ru/cass.php (рис. 19.5). Посетитель может просмотреть описания кассет и отметить заинтересовавшие его предложения, поставив галочку в checkbox'ах. В низу страницы расположен раздел оформления заказа — сверившись с суммой (рассчитываемой небольшим сценарием на javascript и выводимой средствами Dynamic HTML в соответствующей строке формы), посетитель должен ввести свои контактные данные и отправить заказ, нажав соответствующую кнопку. Страница «магазина» содержит форму с заголовком lt;FORM METHOD="post" ACTION="http://www.harchikov.ru/zakaz.php" NAME="mainform"gt; — то есть PHP-программа, обрабатывающая форму, находится в файле zakaz.php на сайте www.harchikov.ru (и именно на эту страницу произойдет переход после нажатия кнопки отправления заказа на исходной странице — "Отправить заказ"), а в адресной строке переменные отображаться не будут. Поскольку программы на PHP, чтобы быть исполненными, должны содержаться в какой-либо web-странице, то команда отправки почты содержится в файле zakaz.php. Вот как выглядит PHP-сценарий, формирующий письмо с заказом и отправляющий его администратору сайта: lt;?php $zak=" \n"; if ($RNS == True){$zak="$zak Русские не сдаются! \n"; } if ($ZAR == True){$zak="$zak За Родину \n"; } if ($PRP == True){$zak="$zak Песни пролетариата \n"; } … mail ("[email protected]", "Заказ на кассеты", "С адреса $email с контактными данными $cont пришла заявка на приобретение кассет: $zak. Отправитель пользовался браузером $HTTP_USER_AGENT, работал с IP-адреса $REMOTE_ADDR", "From: $email\nReply-To: $email\nContent-Type: text/plain; charset=windows-1251"); ?gt; Команда, собственно отправляющая письмо, стоит последней — это Имейте в виду, что для полноценного тестирования функции Вот так, очень просто, вы можете сделать элементарную форму заказа чего-либо через Интернет с отправкой данных этих заказов вам по электронной почте. При использовании данного способа посетителю даже не нужно быть постоянно подключенным к Интернету во время оформления заказа — он спокойно может загрузить страницу с перечнем товаров, отключиться от Сети, выбрать нужные предложения и заполнить поля формы заказа, а затем, подключившись снова, этот заказ отправить. Да и саму страницу со списком ему необязательно получать именно из Сети — вы можете отправить ее кому-либо по почте или поместить на компакт-диски, раздаваемые друзьям или коллегам (не забудьте только в заголовке формы указать полный адрес страницы с программой-обработчиком, как это сделано в приведенном примере). Упомянутый сценарий Интернет-магазина подробно рассмотрен в книге "PHP: полезные приемы". Заключение История PHP — прекрасный пример того, как изобретение, действительно нужное людям, способно завоевать весь мир. Начавшись с небольшого приложения, созданного энтузиастом-любителем, PHP превратился в самый массовый и самый многофунциональный язык web-программирования. Простой синтаксис и логичная структура, отсутствие затрудняющих работу особенностей, модульность конструкции интерпретатора, легкость взаимодействия с базами данных, — все это и сделало PHP таковым. Освоить PHP может каждый. Наличие множества весьма информативных ресурсов Интернета и полнота официального описания языка делают этот процесс легким и быстрым. Для реализации довольно широкого круга задач вполне хватит даже простой модификации фрагментов кода, приводимых в справке к официальному описанию. А, как показано выше, PHP позволяет не только дать посетителям сайта новые возможности, но и серьезно облегчить труд создателя сайта, тем самым сэкономив больше времени, чем затрачено на его освоение. Поэтому вы никогда не пожалеете, что занялись изучением этого языка. Полезные советы · Наиболее частой ошибкой при создании программ на PHP является отсутствие знака точки с запятой после какого-либо оператора. За его наличием надо внимательно следить. Также не следует забывать, что при выполнении в каком-либо условии сравнения на равенство двух переменных между ними необходимо ставить не один, а два знака равенства: if (a==b) и никак иначе. |
||||||||||||
|