Interface cgi, php tanulmány

CGI interfész

A kifejezés CGI (Common Gateway Interface - Common Gateway Interface) jelöli azt a megállapodási betartandó Web-szerverek teljesítményének különböző web-alapú alkalmazások. Sőt, egészen a közelmúltig, az összes web-programozó volt egy programozási CGI-alkalmazások. Az utóbbi években a helyzet megváltozott. És míg a CGI még egy nem hivatalos szabvány web-alapú alkalmazások, a mechanizmus a CGI-programokat frissíteni.

Az utolsó pont különösen lenyűgöző. Ha vannak átitatva az ő ötlete, az azt jelenti, hogy érti, általánosságban, amit a CGI. Csak CGI biztosít mindent, ami úgy néz ki, a felhasználó is. Hagyományosan programok futnak összhangban CGI megállapodások, az úgynevezett forgatókönyvek - valószínűleg annak a ténynek köszönhető, hogy a legtöbb esetben meg vannak írva az értelmező nyelv (mint a PHP vagy Perl).

Így tudjuk használni egy erős mechanizmust, amely lehetővé teszi számunkra, hogy létrehoz dokumentumok „on the fly”.

Például, meg kell semmilyen dokumentumot beállítja az aktuális dátumot és időt. Természetesen nem tudjuk előre regisztrálja azokat a dokumentum - sőt, attól függően, hogy ha be van töltve a felhasználó, ez az időpont meg kell változtatni. De tudjuk írni egy forgatókönyvet (script), amely kiszámítja a dátum, helyezze be a dokumentumot, majd adja át a felhasználónak! Ugyanakkor azt is épített egy modell hiányzik egy link. Valóban, tegyük fel, szeretnénk időt a mi oldal lepecsételt alapján a felhasználó időzónát. De a forgatókönyvet, hogy melyik időzónában a régióban, ahol a beteg él (vagy bármely más információt, amely biztosítja a felhasználó számára)? Úgy tűnik, ott kell lennie valamilyen mechanizmus, amely lehetővé teszi a felhasználó számára, hogy nem csak kapni, hanem továbbítja az információt a szerver (ebben az esetben például az időt órában tekintetében a módosítás Moszkva). Azt is előírja, CGI.

szerver interakció a böngésző

Cél Interface CGI

CGI mechanizmus irányítja a program kimenete a web-szerver, és hogy viszont a felhasználó böngészőjének. Ami a program nem szokatlan - csak információkat jelenít meg. Abszolút semmilyen programot nem lehet CGI-programok a mert a befejezés előtt vissza kell vonnia bizonyos szerver fejlécek - legalább a típusú információt jelenik meg. Például, ha szeretnénk nyomtatni a képet, meg kell küldeni egy fejlécet Content-type: image / gif. Ha CGI-programot kell átadni paramétereket, akkor történik nagyon egyszerűen - mint ahogy az a rendszeres programot. Például, meg kell, hogy adja át a query string [email protected] forgatókönyv cgi.exe. Ehhez meg kell hívni a program cgi.exe a megadott lekérdezési karakterlánc: cgi.exe [email protected].

Szét a paramétereket karakter . Láttál egy pár beviteli mezők és a kapcsolók az oldalon, és a „Küldés” gombra alattuk? Ez az a forma segítségével
Akkor automatizálni a folyamatot adatátviteli forgatókönyv. Természetesen a script is, hogy ismét reagálni következő opciók közül: tartsa a húr elemzés, hozzon létre változókat, stb Meg kell jegyezni, hogy ezek a cselekvések kell programozni kézzel, ha azt akarjuk, hogy használja a C nyelvet. PHP elemzési query string paraméterek magukat.

Tehát, ez a módszer a küldés a paramétereket a script (ha az adatok kerül a parancssorban URL) a GET metódust. Sőt, akkor is, ha nem telt el olyan paramétereket (például amikor betölti a statikus oldal), még mindig használják a GET metódus. Azonban van egy közös út - az átadási perametrov POST kérés módszer. átviteli kérés módszereket az alábbiakban tárgyaljuk.

Ha a program célja a CGI, meg kell vigyázni a kölcsönhatás a szerver. A legegyszerűbb az, hogy a kölcsönhatás programozó tudnia kell információt a szerveren. Ezt az információt továbbítja a környezeti változók használatával.

Ez körülbelül és a munka mechanizmusa CGI.

Módszerek létrehozásának a CGI-script (script)

A CGI-programok gyakran írt néhány értelmezett nyelv (PHP, Perl, Bash, Phyton, stb.) Azt is írni egy programot egy összeállított nyelvet, mint a C. kik fogják kezelni a felhasználói adatokat. Itt egy példa a CGI-programot a C:

#include // kell inicializálni a rand () függvény
#include // Tartalmazza a I / O funkciók
#include // És ez -, hogy támogassa a rand () függvény
// fő funkciója. Nevezetesen akkor kezdődik, amikor a forgatókönyvet kezd.
void main (void) // inicializálja a véletlenszám-generátor
int num; time_t t; srand (idő (t));
// véletlen számot írt a Num 0-9
Num = rand ()% 10;
// továbbá megkaphatja a válasz-fejlécet. Típus - html-dokumentum
printf ( "Content-type: text / html \ n");
// letiltása gyorsítótárral
printf ( "Pragma: no-cache \ n");
// üres fejléc
printf ( "\ n");
// megjeleníti a szöveget a dokumentum - látni fogjuk a böngésző
printf ( "„);
printf ( "");
printf ( "véletlen szám tartományban 0-9 :.", num);
printf ( "„);
>

Most már tudjuk lefordítani a programot egy futtatható (bináris) cgi.exe fájlt, és hivatkoznak rá, mint egy CGI-scriptek.

Aztán végül úgy eljárásokban továbbítására.