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

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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Сценарии JavaScript в активных страницах Web
<<-[Весь Текст]
Страница: из 116
 <<-
 
и, введенные в полях pwd и pwd1. Если эти пароли совпадают, 
сценарий посылает данные серверу с помощью метода submit, определенного в 
форме:
document.forms[0].submit();
   Здесь мы обращаемся к первой (и единственной) форме, определенной в нашем 
документе HTML.
   Программа CGI с именем control.exe отображает полученные данные в 
динамически создаваемом документе HTML (рис. 3.18).

Рис. 3.18. Данные, полученные программой CGI от формы
   В списке значений полей, расположенным в нижней части этого документа, 
находится идентификатор и пароль пользователя.
   Исходный текст программы CGI, с которой работает наш документ HTML, показан 
в листинге 3.8.
Листинг 3.8. Файл chapter3/validation/controls/controls.c
// ===============================================
// Программа CGI controls.c
// Получение данных от формы и их 
// отображение в документе HTML,
// создаваемом динамически
//
// (C) Фролов А.В., 1997, 1998
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//         или
//         http://www.dials.ccas.ru/frolov
// ===============================================

#include 
#include 
#include 

// Прототипы функций перекодировки
void DecodeStr(char *szString);
char DecodeHex(char *str);

// ------------------------------------------------
// Функция main
// Точка входа программы CGI
// ------------------------------------------------
void main(int argc, char *argv[])
{
  int lSize;
  FILE * fileReceived;
  char * szMethod;
  char szBuf[8196];
  char szSrcBuf[8196];
  char * szPtr;
  char * szParam;

  // Вывод заголовка HTTP и разделительной строки
  printf("Content-type: text/html\n\n");

  // Вывод начального форагмента документа HTML,
  // формируемого динамически
  printf("");
  printf("User Registration"
    "");

  // Определяем метод передачи данных
  szMethod = getenv("REQUEST_METHOD");

  // Обработка метода POST
  if(!strcmp(szMethod, "POST"))
  {
    // Определяем размер данных, полученных от браузера
    // при передаче данных из полей формы
    lSize = atoi(getenv("CONTENT_LENGTH"));

    // Читаем эти данные в буфер szBuf из
    // стандартного потока ввода STDIN
    fread(szBuf, lSize, 1, stdin);

    // Создаем файл, в который будут записаны
    // принятые данные
    fileReceived = fopen("received.dat", "w");

    // Выполняем запись принятых данных
    fwrite(szBuf, lSize, 1, fileReceived);

    // Закрываем файл принятых данных
    fclose(fileReceived);

    // Отображаем значения некоторых переменных среды
    printf("

Переменные среды

"); // Метод доступа printf("REQUEST_METHOD = %s", getenv("REQUEST_METHOD")); // Размер полученных данных в байтах printf("
CONTENT_LENGTH = %ld", lSize); // Тип полученных данных printf("
CONTENT_TYPE = %s", getenv("CONTENT_TYPE")); // Закрываем буфер данных двоичным нулем, // превращая его таким образом в строку szBuf[lSize] = '\0'; // Делаем копию принятых данных в буфер szSrcBuf strcpy(szSrcBuf, szBuf); // Отображаем принятые данные без обработки printf("

Принятые данные

"); printf("

%s", szSrcBuf); // Выполняем перекодировку принятых данных DecodeStr(szSrcBuf); // Отображаем результат перекодировки printf("

Данные после перекодировки

"); printf("

%s", szSrcBuf); // Выводим список значений полей формы printf("

 
<<-[Весь Текст]
Страница: из 116
 <<-