Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Технологии создания интерактивных страниц: ASP, PHP, SSI




Как нетрудно видеть из предыдущего описания, CGI пред­ставляет собой некую готовую исполняемую программу, со­зданную с определенными целями и достаточно сложно пере­настраиваемую, если требуется немного изменить ее назначение (точнее, соответствующие возможности настрой­ки уже должны быть заложены в алгоритм, иначе требуется модифицировать листинг и заново транслировать его в ис­полняемый код, для чего в свою очередь нужны определен­ные полномочия администратора сервера). Скрипты же (о которых говорится в главе 6) в этом плане гораздо удоб­нее: нужно лишь вставить в HTML-текст требуемые команды (или мини-программу), а далее такой файл можно размес­тить практически на любом сервере, не выходя за пределы отведенного под ваш сайт каталога. Но скриптовое програм­мирование обладает крупным недостатком — поскольку скрипты сначала пересылаются в составе копии HTML-файла на локальный компьютер каждого посетителя сайта, а затем выполняются уже непосредственно в браузере, то и результа­ты их работы будут доступны только на данной локальной машине (не удастся, например, реализовать сбор информа­ции от всех пользователей в единую общедоступную базу данных).

Однако существует и компромисс - «серверные скрипты», реализуемые в нескольких вариантах, немного отличающих­ся между собой в деталях, но родственных по своей идеоло­гии. Здесь, как и при «классическом» скриптовом програм­мировании, пользователю предоставляется некий язык команд, встраиваемых непосредственно в HTML-текст. Но ис­полнение этих команд производится не в браузере, а на серве­ре, аналогично CGI (как правило, обработка таких команд и производится при помощи CGI, так что фактически в этом случае мы имеем дело с неким универсальным и сверхгибким в настройке CGI-приложением!) со всеми ранее описанными преимуществами клиент-серверной технологии. Правда, по­скольку скриптовые команды необходимо сначала преобразо­вать в исполняемый код, Web-страницы с ними обрабатыва­ются несколько медленнее, чем содержащие вызовы готовых CGI-программ (и здесь дело обстоит аналогично сравнению трансляторов с языков программирования — компиляторов и интерпретаторов). В этой книге автор не ставит своей целью подробное изучение серверного скриптового программирова­ния, поэтому здесь мы уделим внимание лишь основным осо­бенностям трех разновидностей этой технологии.

ASP

ASP - (Active Server Page), или активные серверные стра­ницы - это один из наиболее известных компромиссов меж­ду клиент-серверной и скриптовой технологиями. Основа ASP — это скрипты, добавленные в HTML-текст страницы (такой файл обычно имеет расширение asp) и выполняемые на сервере, тогда как браузер пользователя получает моди­фицированный соответствующим образом файл с «чистым» HTML (т. е. сами ASP-скрипты пользователю недоступны, так как ему передается уже результат работы этих скрип­тов). В этом можно увидеть значительное сходство ASP с Dy­namic HTML (см. главу 6), но размещение скрипта на сервере позволяет избавиться от недостатков, присущих скриптовому программированию (в частности, ASP-технологии позво­ляют реализовать работу с размещенными на сервере базами данных, в том числе пополняемыми вводимой различными пользователями сайта информацией). Правда, сфера приме­нения ASP несколько уже, чем, скажем, для РНР (рассмат­риваемых далее): это прежде всего создание интерфейсов баз данных с использованием специальных ActiveX — компо­нентов «ActiveX Data Objects» и общепринятого стандарта формирования запросов к базам данных SQL.

Пример ASP-скрипта:

<%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD>

<Т1ТЬЕ>Тест ASP</TITLE> </HEAD> <BODY>

<%= "Московское время " & time %> </BODY> </HTML>

Здесь за основу взят скриптовой язык VBScript, а сгенери­рованная страница в результате будет содержать внутри кон­тейнера <BODY>...</BODY> строку с указанием текущего времени (т. е. значение системной переменной сервера time будет приписано к имеющейся текстовой константе).

РНР

PHP (Personal Ноте Page) — это серверный мультиплатформенный (т. е. не зависящий от применяемого в том или ином случае программно-аппаратного обеспечения, так же, как и язык Java) язык описания сценариев, встраиваемый в HTML-текст. История его создания — типичный пример ис­тории всей идеологии серверных скриптов. Первоначально была создана простейшая CGI-оболочка, отыскивающая в «исходном листинге» на HTML и интерпретирующая требуе­мым образом несколько специфических по назначению команд, однако сама идея предоставить разработчику Web-страницы простой в освоении и использовании язык «программирования» требуемых от сервера действий вызва­ла большой интерес, и в 1994 г. РНР получил общепризнан­ный статус интерактивной Web-технологии.

Работа с PHP достаточно проста. Сам HTML-файл, содержа­щий в себе PHP-команды, должен носить расширение phtml (предпочтительно), php3 или php. Собственно команды языка РНР всегда заключаются в специальный «тэг», начинающийся с <?php и заканчивается парой символов?>, и разделяются точкой с запятой. Комментарии записываются аналогично языку Си - между знаками / * и * /, либо после пары символов // и до конца текущей строки. Такие вставки, размещаемые в требуемых местах HTML-кода, позволяют добавлять на Web-страницу те или иные элементы, обычно реализуемые вы­зовом CGI-программы, либо фактически превращают данный файл в «шаблон», по которому строятся пересылаемые пользо­вателям «результирующие» Web-страницы.

Пример РНР-скрипта

«компоновки» Web-страницы из готовых фрагментов;

...предыдущий HTML-текст...

<?php

$url = "";

if ($link == 1) { $url = "name1.phtml"; }

if ($link == 2) { $url = "name2.phtml"; }

if ($link == 3) { $url = "патеЗ.phtml"; }

if ($link ==4) { $url = "name4.phtml"; }

if ($url == "") { $url = "error.phtml"; }

INCLUDE ($url);

?>

...последующий HTML-текст...

Вставив внутрь «обычного» HTML-кода указанный скрипт, можно в зависимости от текущего значения пере­менной с именем link, переданной в составе гиперссылки на данный Web-документ, например: http://www.domain.ru/ webdoc.phtml?link=l, подставить в данное место данного HTML-файла соответствующий фрагмент из другого файла, имя которого присваивается переменной url (если же пере­данное значение link не соответствует ни одному из указан­ных, то последний из операторов if предпишет вывести в этом месте заранее заготовленное сообщение об ошибке).

Пример PHP-скрипта счетчика посещений:

<р>Посетителей странички -

<?php

$filename = "counter.dat"; -

$fp = @fopen($filename,"r");

if ($fp) { $counter=fgets($fp,10); fclose ($fp); }

else { $counter=0; } $counter++; echo $counter;

$fp = @fopen($filename, "w"); if ($fp) { $counter=fputs($fp,$counter); fclose($fp); }

?>

</p>

Этот скрипт - наглядная демонстрация алгоритма работы счетчика посещений. Он предельно прост: сначала мы присваиваем переменной filename название некоего файла, хранящего текущее количество посетивших данный сайт пользователей, затем открываем его и считываем в пе­ременную counter хранящееся там значение (или, при не­возможности чтения, обнуляем счетчик). Далее значение counter увеличивается на единицу и «впечатывается» в дан­ном месте генерируемого HTML-документа (команда echo, «привычная» нам еще по bat-файлам для MS-DOS), а потом записывается в тот же самый «буферный» файл взамен прежнего.

Однако же сразу заметим и принципиальное отличие этого счетчика от реализуемого при помощи «классической» CGI-программы. Если в последнем случае HTML-файл содер­жит вызов CGI-приложения, а браузер генерирует обращение к нему, когда данная страница уже в него загружена и требуется подгрузить к ней иллюстрации, то при использовании РНР на сервере сначала, еще до передачи страницы браузеру, формируется запись (или закодированные вызовы изображений цифр) значения счетчика, а затем генерируется и пересылается на ПЭВМ посетителя сайта HTML-документ, который уже со­держит в себе эту запись в готовом виде (т. е. для текстового счетчика после загрузки такой страницы в браузер никаких дополнительных обращений к серверу вообще не нужно, а для графического - производится только обычная подгрузка гра­фических файлов с уже известными браузеру именами).


SSI

SSI (Server Side Includes), или «включения на стороне сервера», - это тоже разновидность скриптовых команд, вставляемых в HTML-текст для передачи каких-либо указа­ний серверу. Выглядят они как обычные HTML-коммента­рии, содержимое которых начинается с «спецсимвола» #, состоит из указания имени команды и одного или несколь­ких параметров с их значениями. Всего таких команд преду­смотрено около десятка; обычно они применяются (анало­гично РНР) для вставки в некоторый «шаблонный» Web-документ HTML-фрагментов из внешних файлов, для генерации страниц в зависимости от значений переменных (например, таким способом можно реализовать «адаптацию» сайта под запрошенные от пользователя тип и версию браузе­ра) и т. п. Например, если какие-либо фрагменты Web-стра­ницы являются типовыми и повторяются почти на всех стра­ницах («панель управления», шаблонные элементы оформления, меню и пр.), можно вынести соответствующий им HTML-текст в отдельные файлы, а в сами страницы доба­вить SSI-команды, предписывающие вставить указанные блоки кода на предназначенные для них места. Сам же HTML-файл, содержащий такие команды, обычно носит рас­ширение shtral (или shtm). Результирующая же Web-страни­ца формируется сервером непосредственно перед ее пересыл­кой на компьютер посетителя. И, как и в предыдущих случаях, сами эти команды конечному пользователю не «видны», т. е. он просматривает в своем браузере страницу уже на «чистом» языке HTML, которую сервер скомпоновал в соответствии с данными ему указаниями.

Пример кода:

<p align=center><img src=”images/<!--#echo var=”picture”--> “alt=” /<!--#echo var=”title”--></p>

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...