t; HTML > \\ n "); printf (" < body > \\ n "); printf (" < h1 > Zadaná hodnota bola: ") printf ("% s < /h1 > \\ n ", getenv (" QUERY_STRING ")); printf (" < /body > \\ n "); printf (" < /html > \\ n "); return 0;}
To bol zostavený s nasledujúci príkaz:
gcc simpleform.c -o simpleform.cgi A to bolo umiestnené v adresári cgi-bin. Tento program jednoducho zdvihne hodnotu odoslaného formulára a zobrazí ho. Napríklad, môžete vidieť nasledujúce:
Zadaná hodnota bola: Name = John Smith + Name je identifikátor pre pole pre písanie textu vo forme (každý vstupné pole na formulári by mal mať jedinečný identifikátor), a John Smith + je typický názov, ktorý by mohol byť zapísané na formulári. Všimnite si, že " + " nahradí znak medzery.
Z tohto príkladu môžete vidieť, že základný proces zriadenie formulár a získavanie dát z formulára do skriptu CGI je pomerne jednoduché. Tu je niekoľko údajov, ktoré majú mať na pamäti:
Každý vstupné pole vo formulári by mali mať jedinečný identifikačný kód
Formulár musí používať buď GET alebo metódy POST. , Metóda GET má tú výhodu, že môžete vidieť hodnoty vo formulári v URL zaslanej scenáre, a to robí ladenie jednoduchšie.
existuje konkrétne obmedzenie počtu znakov, ktoré je možné odoslať pomocou metódy GET , takže POST je výhodná pre veľké formulárov.
Dáta, ktoré prichádza v pomocou metódy GET je prijatý pri pohľade na premennú QUERY_STRING prostredie (zvyčajne čítanie s funkciou getenv v C alebo $ ENV zariadení v Perlu). Dáta, ktoré prichádza v pomocou metódy POST je k dispozícii prostredníctvom STDIN použitie dostane v C alebo čítať v Perle.
dáta, ktoré príde, bude mať všetky polia spojenia spoločne v jednom reťazci, a mnoho postáv bude nahradená, a preto potrebujú preklad. Napríklad, budú všetky priestory nahradí plusy.
Premenná prostredia QUERY_STRING vyvolá tému premenných prostredia vo všeobecnosti. Existuje celý rad premenných prostredia, ktoré môžete preskúmať vo svojich CGI skripty, including:
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
GATEWAY_INTERFACE
HTTP_ACCEPT
HTTP_USER_AGENT
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAM