Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Сценарии JavaScript в активных страницах Web
<<-[Весь Текст]
Страница: из 116
 <<-
 
zBuff, szTempBuf);

  // Конечный фрагмент документа HTML
  strcat(szBuff, "");  

  // Посылаем содержимое буфера удаленному пользователю
  if(!lpECB->ServerSupportFunction(lpECB->ConnID,
    HSE_REQ_SEND_RESPONSE_HEADER, NULL, NULL, 
    (LPDWORD)szBuff))
  {
    // Если послать данные не удалось, 
    // завершаем работу нашего расширения ISAPI 
    // с кодом ошибки
    return HSE_STATUS_ERROR;
  }

  // Записываем код успешного завершения
  lpECB->dwHttpStatusCode = 200;
  
  // Возвращаем принак успешного завершения  
  return HSE_STATUS_SUCCESS;
}
   Файл определения модуля для библиотеки DLL расширения приведен в листинге 7.
6.
Листинг 7.6. Файл chapter7/NotebookISAPI/ishello.def
LIBRARY	     ishello
DESCRIPTION  'Simple ISAPI DLL'
EXPORTS
    GetExtensionVersion
    HttpExtensionProc
   Для извлечения значения cookie, предаваемого расширению через заголовки HTTP,
 мы использовали функцию GetServerVariable, указав ей в качестве второго 
параметра имя интересующей нас переменной HTTP_COOKIE:
lpECB->GetServerVariable(lpECB->ConnID,
    (LPSTR)"HTTP_COOKIE", (LPVOID)szTempBuf, &dwSize);
   Полученное таким образом значение дописывается в буфер динамически 
создаваемого документа HTML. Этот буфер впоследствии будет отправлен клиенту 
при помощи функции ServerSupportFunction.
  Счетчик посещений на базе cookie и программы CGI
   Последний пример, приведенный в этой главе, показывает основные приемы 
работы с cookie в программах CGI и сценарии JavaScript, вставляемом в тело 
динамически формируемого документа HTML.
   Внешний вид исходного документа HTML, вызывающего программы CGI, показан на 
рис. 7.10.

   Рис. 7.10. Документ HTML, вызывающий программу CGI
   Как видно из этого рисунка, в документе определена форма с двумя кнопками. 
Обе эти кнопки предназначены для вызова одной и той же программы CGI, но с 
разными параметрами.
   Если нажать на кнопку с надписью Go to page, программа GCI создаст документ 
HTML, предварительно проанализировав заголовок пришедшего к ней запроса на 
предмет наличия в нем информации о cookie. Кнопка Remove All Cookies 
предназначена для вызова программы CGI с целью удаления cookie.
   В том случае, когда этой информации нет, программа CGI динамически 
сформирует документ HTML, добавив к его заголовку HTTP заголовок Set-Cookie 
(рис. 7.11).

   Рис. 7.11. Документ HTML, создаваемый программой CGI при первом посещении
   При последующих посещениях cookie уже определен, и наша программа CGI 
получает его значение, интерпретируя это значение как счетчик посещений. Затем 
она увеличивает значение счетчика на единицу, и записывает заголовок Set-Cookie 
в заголовок HTTP создаваемого документа HTML с новым значением cookie.
   Значение счетчика посещений отображается в теле документа (рис. 7.12).

   Рис. 7.12. Документ HTML, создаваемый программой CGI при третьем посещении
   Далее программа CGI вставляет в текст этого документа сценарий JavaScript, 
расположенный в отдельном файле. Данный сценарий определяет значение cookie 
своими средствами и отображает его вм
 
<<-[Весь Текст]
Страница: из 116
 <<-