dnota byla: ") printf ("% s < /h1 > \\ n ", getenv (" QUERY_STRING ")); printf (" < /body > \\ n "); printf (" < /html > \\ n "); return 0;}
To byl sestaven s následující příkaz:
gcc simpleform.c -o simpleform.cgi A to bylo umístěno v adresáři cgi-bin. Tento program prostě zvedne hodnotu odeslaného formuláře a zobrazí jej. Například, můžete vidět následující:
Zadaná hodnota byla: Name = John Smith + Name je identifikátor pro pole pro psaní textu ve formě (každý vstupní pole na formuláři by měl mít jedinečný identifikátor), a John Smith + je typický název, který by mohl být zapsány na formuláři. Všimněte si, že " + " nahradí znak mezery.
Z tohoto příkladu můžete vidět, že základní proces zřízení formulář a získávání dat z formuláře do skriptu CGI je poměrně jednoduché. Zde je několik údajů, které mají mít na paměti:
Každý vstupní pole ve formuláři by měly mít jedinečný identifikační kód
Formulář musí používat buď GET nebo metody POST. , Metoda GET má tu výhodu, že můžete vidět hodnoty ve formuláři v URL zaslané scénáře, a to dělá ladění jednodušší.
existuje konkrétní omezení počtu znaků, které lze odeslat pomocí metody GET , takže POST je výhodná pro velké formulářů.
Data, která přichází v pomocí metody GET je přijat při pohledu na proměnnou QUERY_STRING prostředí (obvykle čtení s funkcí getenv v C nebo $ ENV zařízení v Perlu). Data, která přichází v pomocí metody POST je k dispozici prostřednictvím STDIN použití dostane v C nebo číst v Perlu.
Data, která přijde, bude mít všechna pole spojení společně v jednom řetězci, a mnoho postav bude nahrazena, a proto potřebují překlad. Například, budou všechny prostory nahradí plusy.
Proměnná prostředí QUERY_STRING vyvolá téma proměnných prostředí obecně. Existuje celá řada proměnných prostředí, které můžete prozkoumat ve svých 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_NAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
There jsou všechny druhy zajímavých kusů informací pohřbených v těchto proměnných