Самоучитель по креативному веб-дизайну. Книга 4, стр.44

Метод Response. clea r стирает из выходного буфера всю информацию, кроме HTTP-заголовков ответа. Таким образом, если в вашей ASP-странице содержится статический HTML-код, и/или обработчик сценариев что-то вывел в выходной

поток HTML, можно вызвать метод Response. clear и начать заново с пустой

Web-страницы. Как и в случае метода Response. Flush, перед этим свойство

Response. Buffe r ДОЛЖНО быть установлено раВНЫМ True, Иначе ВЫЗОВ

Response. clea r вызовет ошибку времени выполнения.

Метод Response. clear можно использовать и после вывода промежуточных результатов, чтобы посетитель сайта увидел окончательный результат на страни — це, не содержащей сообщений о состоянии и промежуточных итогов. Например,

В Предыдуще м Пример е МОЖНО Заменит ь Два ПОСЛеДНИХ ВЫЗОВа Response. Writ e

на следующий код:

568 Глава 11. Активные серверные страницы (ASP)





Response. Clear

Response. Write «»

Response. Write «»

Response. Write «Суммы продаж: по офисам и Bcero»

Response. Write «Продажи по офису 1: » & officelSales & «

»

Response. Write «Продажи по офису 2: » & office2Sales & «

»

Response. Write «Продажи по офису 3: » & office3Sales & «

»

Response. Write «Общая сумма продаж: » &

(officelSales + office2Sales + office3Sales)



Если нужно прекратить выполнение сценария и отправить браузеру всю накопленную выходную информацию, можно воспользоваться методом

Response. End. После вызова Response. End обработчик сценариев больше не об- рабатывает операторы сценария и не посылает оставшийся статический HTML-код, который может встретиться далее в тексте ASP-страницы. Метод

Response. End можно задействовать для прекращения выполнения сценария, если обнаружится, что невозможно выполнить какую-либо часть сложной процедуры. Например, предположим, что недоступна база данных второго офиса, и поэтому не — возможно вычислить общую сумму продаж. После проверки кода ошибки, который вернет оператор открытия базы данных, выполнение сценария можно прекратить, вставив в него следующий код:



rf errorOnConnect

Response. Write «Запрос не выполнен! Данные по офису 2 недоступны.»

Response. Write «»

Response. End \

End If



Обратите внимание, что сценарий выводит дескрипторы и в

выходной поток HTML до вызова метода Response. End. Запомните, что вызов

Response. End прекращает дальнейшую обработку сценария. Более того, обработ — чик сценариев не будет копировать в выходной буфер оставшийся на ASP-стра —

нице статический HTML-код (наподобие дескрипторов и, сле —

дующих за сценарием).



Предотвращение вывода браузером устаревших

ASP-страниц

Возможно, вы заметили, что при первом заходе на какую-либо Web-страницу браузеру на ее получение и отображение требуется больше времени, чем при

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

который находится на (локальном) жестком диске. Например, на Windows-маши —

не Internet Explorer кэширует посещаемые вами Web-страницы — вместе с рисун — ками, звуком и другими мультимедийными файлами, используемыми на них —

На жесТКОМ ДИСКе В папке C:\Windows\Temporary Interne t Files. ЕСЛИ рабо —

тать только со статическими страницами, то кэширование и выборка Web-стра —

Глава 11. Активные серверные страницы (ASP) 56 9





ниц с локальногоч жесткого диска (или с жесткого диска proxy-сервера, если дос —

туп в Internet осуществляется через него) не вызывает проблем. Однако ASP — страницы динамичны по самой своей природе. К сожалению, с точки зрения браузера Web-страница, сгенерированная обработчиком сценариев, представляет

собой обычный статический Web-документ с расширением .asp. Поскольку. asp

в конце имени файла для браузера не означает ничего особого, он кэширует ASP-страницы и выбирает их из кэша. В результате Web-страница, отображаемая браузером при повторном посещении страницы, может не совпадать с тем, что вы увидели бы, если бы браузер получил страницу не из кэша, а от сервера.

Самоучитель по креативному веб-дизайну. Книга 4, стр.45

Свойства Response. Expires И Response. ExpiresAbsolute ПОЗВОЛЯЮТ запре — тить браузеру отображать устаревшее содержимое, устанавливая для кэшируемых файлов дату и/или время окончания их годности. До истечения этого срока бра — узер не запрашивает Web-страницу с сервера, а отображает ее из кэша. Но после

истечения срока годности копии браузер при посещении этой страницы должен

выгрузить из Web-сервера ее «свежую» копию.



ПРАКТИКУМ

Пусть, например, существует ASP-страница, содержимое которой меняется раз в месяц/Если вы вносите изменения 1 января 2003 года, необходимо вставить в сце- нарий, генерирующий содержимое ASP-страницы, следующий оператор:







Установив в сценарии дату (и время) окончания годности страницы на тот момент, когда встроенные в страницу сценарии изменят ее содержимое, можно предотвратить получение посетителем устаревшей кэшированной информации.

СиНТаКСИС Оператора установки СВОЙСТВа Response. ExpiresAbsolut e ВЫГЛЯ — ДИТ так:

Response. ExpiresAbsolute = # конца> []#



Таким образом, в предыдущем примере срок действия всех кэшированных ко — пий ASP-страницы, измененных 01/01/2003, заканчивается в полночь 31/01/

2003 . (ЕСЛИ При установк е СВОЙСТВа Response. ExpiresAbsolut e ОПуСТИТЬ Время,

то оно считается полночью даты окончания срока годности.) Если нужно, чтобы

кэшированная страница была годна до 15:15 01/02/2003, потребуется написать





Установка конкретной даты и/или времени окончания годности требует руч —

ного редактирования сценария (для изменения срока годности) в начале каждого нового периода. Поэтому, видимо, более удобно задавать срок годности кэширо —

ванной страницы в виде количества минут, а не конкретной даты (и времени). Пусть, например, есть ASP-страница, показывающая курс акций, и ваш Web-сер — вер получает новые котировки каждые 15 минут. Чтобы кэшированное содержи —

мое было актуальным, Можно с помощью метода Response. Expires задать коли — чество минут до истечения срока годности страницы, используя следующий синтаксис:

Response. Expires =

57 0 Глава 11. Активные серверные страницы (ASP)





Таким образом, чтобы браузер запрашивал ASP-страницу с Web-сервера, если кэшированные данные загружены более 15 минут назад, нужно в сценарий, гене — рирующий содержимое ASP-страницы, добавить следующий оператор:







И, наконец, чтобы Web-браузеры не отображали устаревшие страницы, необ — ходимо еще помнить о тех proxy-серверах, которые не поддерживают дату (и вре- мя) конца срока годности. Если посетитель входит в Internet через proxy-сервер,

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

Самоучитель по креативному веб-дизайну. Книга 4, стр.46

Чтобы исключить получение устаревших ASP-страниц от proxy-сервера, следу —

ет установить СВОЙСТВО Response. CashControl равным «Private» . ЕСЛИ оставить

значение свойства Response. CashControl установленным по умолчанию, то есть

«Public», proxy-сервер сохранит страницу в папке кэша на своем жестком диске.

Но еСЛИ установить Значение СВОЙСТВа Response. CashControl раВНЫМ «Private»,

то он не будет так поступать. Значит, для обеспечения выборки Web-страницы с

Web-сервера при каждом обращении к ней нужно до или после оператора уста — новки даты и/или времени годности страницы вставить следующий оператор:







Перенаправление Web-браузера на другую страницу

Когда пользователи работают в Internet, они часто ставят закладки (т. е. добав — ляют их в список избранных сайтов) на страницы, к которым они хотят еще воз — вращаться. И хотя повторный вход по URL-адресу обычно не вызывает проблем, иногда нужно запретить посетителям входить напрямую в некоторые страницы

вашего сайта. Предположим, например, что вы хотите, чтобы перед просмотром содержимого сайта пользователь сначала ввел пароль или зарегистрировался. Если посетитель с помощью закладки входит сразу на страницу с информацией, минуя авторизацию, то потребуется найти способ автоматического перенаправле- ния этого посетителя на Web-страницу с формой авторизации или регистрации.

Метод Response. Redirect дает, возможность перенаправить посетителя сайта с запрошенной Web-страницы на другую.



ПРАКТИКУМ

Кроме перенаправления посетителя на другую страницу для того, чтобы он ввел пароль, этим приемом можно пользоваться и для распределения нагрузки между несколькими Web-серверами или если ваш сайт сменил адрес. Предположим, на —

Самоучитель по креативному веб-дизайну. Книга 4, стр.47

пример, ЧТО у вас работают Два* сервера: NVBizNet. com И NVBizNet. com, И ВЫ ХО —

Глава 11. Активные серверные страницы (ASP) 57 1





тите равномерно распределить нагрузку между ними для увеличения общей про — изводительности. Поэтому вы переместили часть сайтов с сервера NVBizNet. com

на NVBizNet. com. Но посетители могли ранее установить закладки на домашние страницы сайтов на первоначальном сервере (NVBizNet. com). Для перенаправле- ния посетителей, которые пытаются на сервере NVBizNet. com найти сайты, кото —

рые находятся уже на Nv^izNet. com, нужно в начале ASP-страниц, расположен — ных на NVBizNet. com, вставить следующий код:





При ВЫПОЛНеНИИ ИНТерпретаТОрОМ Сценариев Метода Response. Redirect ОН

действует немедленно. Обработчик сценариев больше не обрабатывает никаких операторов на текущей ASP-странице. Вместо этого сервер посылает браузеру со — общение с указанием запросить другую Web-страницу. Значит, в нашем примере браузер сначала посылает сообщение на NVBizNet. com с запросом некоторой ASP-страницы. Но вместо того, чтобы послать браузеру страницу (находящуюся

теперь на другом сервере), сервер NVBizNet. com посылает сообщение о перенап —

равлении, согласно которому браузер должен запросить файл default. as p с сер- вера NVBizNet. com. После чего браузер запрашивает и отображает домашнюю

страницу default. as p уже с нового сервера.

Кроме отсылки посетителя на сайт, находящийся на другом Web-сервере, или

на другой сайт на том же сервере, метод Response. Redirect можно использо —

вать и для отсылки посетителя с одной страницы на другую в пределах одного и

того же сайта. Если новая страница, которую должен получить браузер, нахо — дится на том же сайте, то из URL-адреса, указываемого в методе

Response. Redirect, потребуется убрать «http:// » и доменное имя сервера, тог —

да адрес новой страницы получится относительным. Пусть, например, вы хотите запретить посетителям сразу заходить на ASP-страницы, предназначенные толь —

ко для зарегистрированных пользователей — в обход формы ввода имени и паро — ля. Тогда в начало каждой ASP-страницы, которую вы хотите защитить подоб — ным образом, необходимо вставить код наподобие следующего:



DIM referer, wwwReferer

wwwReferer = Left(Request. ServerVariables(«HTTP_REFERER»), 30)

referer = Left(Request. ServerVariables(«HTTP_REFERER»), 26)

If ucase(wwwReferer) <> «HTTP://WWW. NVBIZNET. COM/HWDTT/» And _

ucase(referer) <> «HTTP://NVBIZNET. COM/HWDTT» Then

Response. Redirect «/loginScreen. asp» End If

%>

Если посетитель вводит URL-адрес Web-страницы в адресной строке брау —

зера или выбирает страницу из списка «Избранное» (или закладок), то «HTTP_REFERER» в посылаемом браузером HTTP-запросе содержит пустое зна — чение. Если же посетитель щелкнул на гиперссылке, браузер посылает серверу

HTTP-запрос, в котором значение «HTTP_REFERERM равно URL-адресу Web —

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

57 2 Глава 11. Активные серверные страницы (ASP)





авторизации) или в результате щелчка на гиперссылке на любой другой

странице, находящейся в папке /hwdtt сервера NVBizNet. com, то вызов мето —

да Request. ServerVariables вернет СТрОКу, начинающуюся С http:/ /

www. NVBizNet. com/hwdtt/ ИЛИ http://NVBizNet. com/hwdtt/:



Request. ServerVariables(«HTTP_REFERER»)



Этот оператор возвращает значение MHTTP_REFERER», которое браузер вставля —

ет в HTTP-запрос, отправляемый Web-серверу.

Чтобы использовать приведенный выше сценарий на своих Web-страницах,

подставьте в оператор i f адрес и путь к папке, содержащей информацию для за- регистрированных пользователей. Кроме того, в предпоследней строке сценария

URL-адрес, передаваемый методу Response. Redirect, необходимо заменить

URL-адресом страницы авторизации вашего сайта.

ПОСКОЛЬКУ метод Response. Redirec t ДЛЯ указания, ЧТО браузер ДОЛЖен Обра — титься к другой Web-странице, использует заголовок HTTP-сообщения, то этот метод может быть вызван сценарием только если выходной буфер HTML пуст (или содержит лишь HTTP-заголовок). Если требуется перенаправить браузер на

Самоучитель по креативному веб-дизайну. Книга 4, стр.48

другую страницу после того, как сценарий уже сгенерировал часть HTML-кода

страницы, нужно сначала очистить выходной буфер с помощью метода

Response. Clear. Затем МОЖНО ВЫЗВаТЬ меТОД Response. Redirect, перенаправля —

ющий браузер на другую страницу.



Хранение значений переменных между

HTTP-запросами в cookie-наборах

Как уже упоминалось ранее, отношение клиент-сервер между Web-браузером

и Web-клиентом «не имеет состояния». Сервер не сохраняет информацию о кли — енте в промежутках между его запросами. Обычно сервер ждет, когда (любой)

браузер отправит ему HTTP-запрос. После получения запроса сервер отвечает на него, ничего не помня о предыдущих соединениях (если они были) с браузером,

приславшим запрос. Но если ваш сайт предназначен только для зарегистриро — ванных пользователей или для онлайновой торговли, то нужно как-то отслеживать посетителя, когда он переходит со страницы на страницу. В противном случае посе — титель должен будет постоянно регистрироваться, поскольку запрос на Web-страни —

цу не дает возможности серверу узнать, зарегистрирован ли уже посетитель.

Cookie-набор — это небольшой текст, который браузер по просьбе сервера за — писывает в cookie-файле Web-сайта на компьютере пользователя. Многие пользо — ватели считают это посягательством на права личности и отключают в браузере возможность сохранять cookie-наборы или, по крайней мере, заставляют браузер запрашивать разрешение перед их записью. Однако cookie-набор может содер- жать лишь данные, добровольно предоставленные пользователем, или общую ин — формацию о его соединении (взятую из HTTP-заголовка запроса Web-страницы). Более того, браузер посылает серверу лишь те cookie-наборы, которые сервер ранее послал браузеру для записи. Так что если вы посетите сайты

www. NVBizNet. com и www. yahoo. com, ваш браузер не пошлет серверу сайта

Глава 11. Активные серверные страницы (ASP) 57 3





Yahoo. com информацию, сохраненную браузером при посещении сайта

NVBizNet. com, И наоборот.



ПРАКТИКУМ



Используйт е для установк и значени й cookie-переменны х коллекци ю

Response. Cookies, а ДЛЯ ИХ выборки — КОЛЛекцИЮ Request. Cookies. Напри — мер, чтобы создать cookie-набор на один сеанс — т. е. cookie-набор, который хра — нится в системе пользователя лишь до тех пор, пока он не выйдет из Web-брау — зера — ваш сценарий должен задать только имя cookie-переменной и ее

Самоучитель по креативному веб-дизайну. Книга 4, стр.49

значение, используя следующий синтаксис:



Response. Cookies («») =

«»



Таким образом, чтобы установить значения односеансовых cookie-переменных

firstName И lastName соответственно В «Конрад» И «Кинг», В ASP-СЦенариЙ ПО —

требуется поместить следующий код:





Response. Cookies(«firstName») = «Конрад»

Response. Cookies(«lastName») = «Кинг»

%>



Если cookie-значение требуется сделать постоянным (т. е. чтобы оно остава — лось и после завершения сеанса), нужно присвоить его свойству Expire s либо конкретную дату, либо промежуток времени. После окончания срока действия

cookie-переменной браузер при HTTP-запросе серверу больше не будет посылать пару имя/значение cookie-переменной. Например, чтобы установить срок годно — сти cookie-переменной userName до 5 декабря 2003 года, используйте следую — щий оператор:







Аналогично для установки срока годности переменной userName в 30 дней, начиная с сегодняшнего», можно использовать встроенную функцию Date() язы —

ка VBScript:



Response .Cookies («userName») .Expires = Date + 30 %>



Предположим, например, что ваш сайт содержит форму регистрации посети —

теля наподобие приведенной на рис. 11.4, в которой текстовые элементы называ —

ются firstName, lastName, streetAddressl, streetAddress2 , city, state,

zipCode И eMailAddress.

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



1 Подпрограмма «StoreCookie» сохраняет значение cookie-переменной

Sub StoreCookie(cookieName, cookieValue, expDate)

Response. Cookies(cookieName) = cookieValue

Response. Cookies(cookieName).Expires = expDate endsub





574 Глава 11. Активные серверные страницы (ASP)





Если посетитель до истечения срока годности cookie-переменных посещает

сайт еще раз, то с помощью метода Request. cookies можно загрузить значения

cookie-переменных в поля ввода регистрационной формы, как показано ниже:




method=»POSTM>



With Response

.Write «Имя:
Msize=’4O’ value=’ » & request. Cookies(«firstName») & «‘Xbr>»

.Write «Фамилия:
«size=’40f value=’ » & request. Cookies («lastName») & M ‘Xbr>»

.Write «Адрес 1:
. «name=’streetAddressl’ size=!40′ value= ‘ » & _ , •

request. Cookies(«streetAddressl») &»f Xbr>»

Глава 11. Активные серверные страницы (ASP) 575





.Write «Адрес 2:
«name=’streetAddress2′ size=’4O’ value=’» &

request. Cookies(TlstreetAddress2′T) &» ‘Xbr>»

.Write «Город:
«size=’4O’ value=’» & request .Cookies («city») &»‘Xbr>»

.Write «Штат:
«size=’4′ value=’ » & request. Cookies («state») &_

«‘> M

.Write «Почтовый код:
«size=’10′ value=’ » & request. Cookies («zipCode») &»‘Xbr>»

.Write «Адрес E-Mail:
Mname=’eMailAddress’ size=’4O’ value=’» &_

request. Cookies(«eMailAddress») & » ‘XbrXbr>»

End With

%>

 



*

Чтобы уничтожить cookie-переменную, достаточно присвоить ей пустую стро —

ку или установить ее свойство Expires равным какой-нибудь дате (или времени)

в прошлом. Например, любой из нижеследующих операторов уничтожает cookie — переменную с именем userName из cookie-файла Web-сайта:









Получение данных из формы с помощью коллекции Form

Получение данных, введенных в элементы HTML-формы, позволяет ASP-сце — нариям настраивать содержимое страницы в соответствие с требованиями и по- желаниями посетителей сайта. Конечно, сценарии на стороне сервера и без вве — денной пользователем информации могут вставлять динамическую информацию

Самоучитель по креативному веб-дизайну. Книга 4, стр.50

вроде текущих даты и времени, котировок акций, информации о погоде и т. д. Но текущее время и температура в Киеве вряд ли интересует жителя Бердичева. Аналогично, текущий курс акций фирм Microsoft и General Motors мало чем пригодится владельцам акций других компаний и вообще не интересен держате — лю облигаций. Чтобы быть полезными, сценарии на стороне сервера, генерирую — щие содержимое страницы, должны сначала выяснить, о чем бы хотел узнать по — сетитель, а потом предоставить ему запрошенную информацию. К счастью, Web-сервер может предоставить вашему сценарию данные, введенные в HTML — форму, в виде коллекции пар имя/значение в ASP-объекте Request.

После того как посетитель заполнит текстовые элементы формы, выберет зна — чения переключателей и списков выбора и щелкнет на кнопке отправки формы, браузер посылает данные, принятые из формы, серверу. Атрибуты action и method дескриптора

сообщают Web-серверу, куда отправить данные и как

они «упакованы» браузером. Если в атрибуте action дескриптора
указан URL-адрес ASP-страницы, то сервер передает страницу, заданную этим атрибу — том, обработчику ASP-сценариев. В зависимости от значения атрибута method

57 6 Глава 11. Активные серверные страницы (ASP)





(GET или POST), сервер заносит данные, принятые из формы, либо в коллек —

цию QueryString, либо В КОЛЛекЦИЮ Form объекта Request.

Если атрибут method дескриптора
равен GET, браузер добавляет дан — ные, принятые из формы, в конец URL-адреса, а сервер помещает их в коллек —

цию Request. QueryString. АнаЛОГИЧНО, еСЛИ method равен POST, браузер ПОСЫ — лает данные, принятые из формы, в теле HTTP-сообщения, а сервер передает их Сценарию В КОЛЛекЦИИ Request. Form.

Предположим, например, что ваша страница содержит следующее определе —

ние формы:


method=»POST»>

Имя: input type=»text» name=»firstName» size=»20″>



Фамилия:




E-mail: input type=»text» name=»eMailAddr» size=»30″>







После щелчка пользователя на кнопке «Отправить» браузер с помощью метода

POST посылает данные, принятые из формы, Web-серверу. После этого сервер выбирает из HTTP-сообщения, посланного браузером, данные, принятые из фор — мы, в виде пар имя/значение и заносит их в коллекцию ASP-страницы

Request. Form.



ПРАКТИКУМ

Коллекция ASP-страницы — это массив значений, которые сценарий может вы — бирать по числовому индексу или по ключевому слову. Удобно, что сценарий

для доступа к значению элемента коллекции Request. Form может в качестве ключевого слова использовать имя элемента формы. Поэтому для доступа к дан — ным, принятым из формы, которая определена в предыдущем примере, можно воспользоваться следующим сценарием:

Самоучитель по креативному веб-дизайну. Книга 4, стр.51





DIM firstName, lastName, eMailAddr

1 Получение данных, введенных в форму

firstName = Request. Form(«firstName»)

lastName = Request. Form(«lastName»)

eMailAddress = Request. Form(«eMailAddr»)

‘ Отображение введенных данных

With Response

.writer «Имя: » & firstName & «

»

.write «Фамилия: » & lastName & «

»

.write «E-mail: » & eMailAddress & «

»

End With

, .%>

Самоучитель по креативному веб-дизайну. Книга 4, стр.52

Чтобы не нарушить конфиденциальность данных, принятых из формы, в дес- крипторе

следует установить атрибут method равным POST — тогда брау — зер отправит эти данные в теле HTTP-сообщения. Метод POST можно использо — вать для приема подробностей заказа или имени, адреса и номера телефона

посетителя. Если же форма содержит очень важные данные, такие как номер кредитной карточки, имя пользователя и его пароль или номера счетов, то мож — но установить защищенное соединение между браузером и сервером. При ис — пользовании метода POST для пересылки данных, принятых из формы, по защи- щенному соединению данные передаются через Internet в теле HTTP-сообщения

в зашифрованном виде.

И наоборот, если вы хотите записывать данные, принятые из формы, в файле протокола на сервере для последующего анализа или же позволить посетителям создавать закладки (или список избранных данных), которые можно использо — вать в дальнейшем для автозаполнения формы, то атрибут method дескриптора

Самоучитель по креативному веб-дизайну. Книга 4, стр.53





DIM symbol(6), i

1 Получение данных, введенных в форму

symbol(l) — Request. QueryString(«si»)

symbol(2) = Request. QueryString(«s2″)

symbol(3) = Request. QueryString(«s3″)

symbol(4) = Request. QueryString{«s4″)

symbol(5) = Request. QueryString(«s5″)

symbol(6) = Request. QueryString(«s6″)

1 Отображение введенных данных

With Response

% For i=l To Request. QueryString. Count

.Write «Обозначение » & i & «: » & symbol (i) & «

» Next

End With

%>





В данном примере сценарий сначала выбирает значения элементов формы по

ИХ именам ИЗ КОЛЛекЦИИ Request. QueryStrin g И Присваивает ЭТИ Значения ЭЛе —

ментам массива symbol. Затем для отображения всех значений, принятых из

Web-страницы, вызывается метод Response. write. Разумеется, ваш сценарий бу — дет проводить более осмысленную обработку принятых значений. В любом слу — чае важно помнить, что вы выбираете значения, принятые из формы с помощью

метода GET, ИЗ КОЛЛекЦИИ Request. QueryString. Кроме ТОГО, Значения всех элементов можно получить по их именам.

580 Глава 11. Активные серверные страницы (ASP)







Вообще-то обычно значения элементов формы выбираются по их именам — если эти имена осмысленны. Однако в предыдущем примере имена элементов формы никак не описывают их значения. Поэтому в данном случае значения

элементов формы удобнее выбирать из коллекции Request. Querystring не по именам, а по их числовым индексам, как показано ниже:



!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN»>







DIM symbol(6), I

1 Получение и отображение имен и значений данных, введенных в форму

With Response

For i = 1 To Request. Form. Count

.write «» & Request. QueryString. Key(i) & «: » &__

Request. QueryString(i) &»•’

Next

End With

%> f



Полезные ссылки
Случайные записи
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 011
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 078
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.2
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.69
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.61
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.137
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.42
  • 23.07.2011">Chrome OS
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 076
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 033
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 017
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 086
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.50
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 078
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 067
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...