Использование технологий 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.




- Начало -  - Назад -  - Вперед -



Книжный магазин