inys -tipo: text /html \\ n \\ n "); printf (" < HTML > \\ n ";); printf (" < kūno > \\ n "); printf (" < h1 > įvesta vertė buvo: ") printf ("% s < /h1 > \\ n ", sukelti GETENV funkcijas (" QUERY_STRING ")); printf (" < /body > \\ n "); printf (" < /html > \\ n "); grįžti 0;}
Jis buvo sudarytas pagal šią komandą:
gcc simpleform.c -o simpleform.cgi Ir jis buvo įtrauktas į cgi-bin kataloge. Ši programa tiesiog susitvarko vertę atsiųstą formą ir rodo jį. Pavyzdžiui, jūs galite pamatyti taip:
įvesta vertė buvo: Vardas = John Smith + pavadinimas yra už teksto įvesties srityje formos identifikatorius (kiekvienas įvesties laukas forma turėtų turėti unikalus identifikatorius), ir Jonas + Smithas yra tipiškas pavadinimas, kuris gali būti įrašytas į formą. Atkreipkite dėmesį, kad " + " pakeičia tarpo simbolį.
Iš šio Pavyzdžiui, jūs galite pamatyti, kad pagrindinis procesas, įkuriantis formą ir gauti duomenis iš formos į CGI skripto yra gana paprasta. Čia yra detalių pora nepamiršti:
Kiekvienas įvesties laukelis formoje turi turėti unikalų identifikatorių
forma reikia naudoti arba GET arba POST metodą. , GET metodas turi tą privalumą, kad Jūs galite pamatyti forma vertybes URL išsiųstas į scenarijų, ir kad todėl derinti lengviau.
Yra neabejotinas ribos simbolių skaičius, kuris gali būti siunčiami per GET metodu , todėl įrašas yra pageidaujama didelių formų.
Duomenų, kad ateina per GET metodu gauta pažvelgus QUERY_STRING aplinkos kintamąjį (paprastai skaityti su sukelti GETENV funkcijas funkcijos C arba $ ENV įrenginio Perl). Duomenys, kurie ateina per POST metodu yra prieinama per STDIN naudojant gauna C arba skaityti Perl.
Duomenų, kad ateina ketina turėti visus laukus sudurtinius sujungti į vieną eilutę, ir daug simbolių bus pakeisti, todėl reikia vertimo. Pavyzdžiui, visi tarpai bus pakeisti pliusus.
QUERY_STRING aplinkos kintamąjį pakelia temą aplinkos kintamųjų apskritai. Yra aplinkos kintamųjų skaičius, kad jūs galite ištirti savo CGI scenarijai, 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_US