Использование технологий WWW для доступа к базам данных



         

Примеры cgi-модулей - часть 4


}

}

char x2c(char *what) {

/* Предназначена для преобразования

шестнадцатиричного кода символа в код символа

*/

register char digit;

digit = (what[0] >= 'A'

? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));

digit *= 16;

digit += (what[1] >= 'A'

? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));

return(digit);

}

void unescape_url(char

*url) {

register int x,y;

for(x=0,y=0;url[y];++x,++y)

{

if((url[x] = url[y])

== '%') {

url[x] = x2c(&url[y+1]);

y+=2;

}

}

url[x] = '\0';

}

void plustospace(char

*str) {

/*замена символов "+"

на символ "пробел"*/

register int x;

for(x=0;str[x];x++) if(str[x]

== '+') str[x] = ' ';

}

Для демонстрации реализации формы с методом запроса GET воспользуемся

той же самой формой, что и для метода POST и программой query.

Для этого изменим значение атрибутов ACTION и METHOD в теге FORM.

<FORM action="http://iceman.cnit.nsu.ru/cgi-bin/query"

METHOD=GET>

После инициации формы сервер установит следующие значения для

переменных окружения и аргументов командной строки:

argc = 0. argv is =

SERVER_SOFTWARE = NCSA/1.5.1

SERVER_NAME = iceman.cnit.nsu.ru

GATEWAY_INTERFACE = CGI/1.1

SERVER_PROTOCOL = HTTP/1.0

SERVER_PORT = 80

REQUEST_METHOD = GET

HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,

*/*

PATH_INFO =

PATH_TRANSLATED =

SCRIPT_NAME = /cgi-bin/test-cgi

QUERY_STRING = RealName=%CF%E5%F2%F0%EE%E2+%C8%E2%E0%ED+%D1%E8

%E4%EE%F0%EE%E2%E8%F7&Sex=%CC%F3%E6%F1%EA%EE%E9&Submit=%CF%EE

%F1%EB%E0%F2%FC+%E7%E0%EF%F0%EE%F1

REMOTE_HOST = fwa.cnit.nsu.ru

REMOTE_ADDR = 193.124.209.74

REMOTE_USER =

AUTH_TYPE =

CONTENT_TYPE =

CONTENT_LENGTH =

Как мы видим, выходной поток от формы появился в значении переменной

QUERY_STRING.

Результат работы query полностью совпадает с результатом работы

post-query.




Содержание  Назад  Вперед