САМОУЧИТЕЛЬ PHP 4

Передача параметров методом GET


Тут все просто. Все параметры передаются единой строкой (а именно, точно такой же, какая была задана в URL после ?) в переменной QUERY_STRING. Единственная проблема — то, что все данные поступят URL-кодирован­ными. Так что нам понадобится функция декодирования. Но это отдельная тема, пока мы не будем ее касаться.

Для того чтобы узнать значения полученных переменных в Си, нужно воспользоваться функцией getenv(). Вот пример сценария на Си, который это обеспечивает.

Листинг 3.2. Работа с переменными окружения

#include <stdio.h>  // Âêëþ÷àåì ôóíêöèè ââîäà/âûâîäà

#include <stdlib.h> // Âêëþ÷àåì ôóíêöèþ getenv()

void main(void) {

// ïîëó÷àåì çíà÷åíèå ïåðåìåííîé îêðóæåíèÿ REMOTE_ADDR

  char *RemoteAddr = getenv("REMOTE_ADDR");

// ... è åùå QUERY_STRING

  char *QueryString = getenv("QUERY_STRING");

// ïå÷àòàåì çàãîëîâîê

  printf("Content-type: text/html\n\n");

// ïå÷àòàåì äîêóìåíò

  printf("<html><body>");

  printf("<h1>Çäðàâñòâóéòå. Ìû çíàåì î âàñ âñå!</h1>");

  printf("Âàø IP-àäðåñ: %s<br>",RemoteAddr);


  printf("Âîò ïàðàìåòðû, êîòîðûå Âû óêàçàëè: %s",QueryString);

  printf("</body></html>");

}

Откомпилируем сценарий и поместим его в "CGI-каталог". Теперь в адресной строке введем:

http://www.myhost.com/cgi-bin/script.cgi?a=1&b=2

Мы получим примерно такой документ:

Çäðàâñòâóéòå. Ìû çíàåì î Âàñ âñå!

Âàø IP-àäðåñ: 192.232.01.23

Âîò ïàðàìåòðû, êîòîðûå Âû óêàçàëè: a=1&b=2


Содержание раздела