Podstawy CGI

Strona g│≤wna

Podstawy CGI

Co to jest ten CGI, czemu jest o nim tyle szumu? Do czego mo┐e Ci siΩ przydaµ? To wszystko postaram siΩ wyja╢niµ w poni┐szym artykule.

CGI to skr≤t od Common Gateway Interface. Umo┐liwia dynamiczne generowanie stron WWW. CGI jest obecny od samego pocz▒tku istnienia WWW. Bardzo pomaga w tworzeniu stron. Mo┐esz np. za jego pomoc▒ stworzyµ stronΩ WWW dynamicznie, a nastΩpnie j▒ wy╢wietliµ. CGI nie jest jΩzykiem kompilowanym. Tzn., jest to plik, kt≤ry zostaje wykonany na serwerze gdy u┐ytkownik bΩdzie chcia│ go u┐yµ. Najpopularniejszym jΩzykiem, w kt≤rym powstaj▒ takie skrypty to Perl. W Perlu mo┐esz napisaµ ka┐dy skrypt. My╢la│e╢, ┐e w jaki spos≤b powstaj▒ ksiΩgi go╢ci, liczniki, wyszukiwarki, czy fora dyskusyjne? Odpowied╝: s▒ pisane w Perlu. S▒ to skrypty CGI.  

Pewnie powiesz: to jest ╢wietne, chce to stosowaµ na swoim WWW. ChwileczkΩ, chwileczkΩ. Z tym nie jest tak │atwo. Darmowe serwisy typu Onet, WP, czy nawet Hoga nie oferuj▒ takiej technologii. Je┐eli masz stronΩ na darmowym serwerze - zapomnij o CGI. Musisz sobie wykupiµ serwer komercyjny. Teraz ju┐ wiesz dlaczego tak wiele serwis≤w oferuje swoje ksiΩgi go╢ci, sondy, statystyki, czy liczniki. 

Pliki CGI maj▒ rozszerzenie *.cgi lub *.pl. Byµ mo┐e na pocz▒tek trudno jest Ci to wszystko zrozumieµ wiΩc pos│u┐Ω siΩ przyk│adem. Chcesz na stronie mieµ licznik odwiedzin. Jak taki bajer dzia│a? Zapisuje ilo╢µ odwiedzin strony do pliku, kt≤ry znajduje siΩ na serwerze. Odbywa siΩ to tak: podczas │adowania strony wykonywany jest skrypt CGI - odczytuje on z pliku tekstowego, kt≤ry umieszczony jest na serwerze liczbΩ ( ilo╢µ za│adowa± strony ), powiΩksza j▒ o jeden i w kodzie HTML wpisuje now▒ liczbΩ, kt≤ra informuje ile razy strona by│a ogl▒dana. Czego╢ takiego ( zapisywanie do pliku, odczytywanie ) nie mo┐esz zrobiµ za pomoc▒ - np. Java Scriptu. 
Istnieje jeszcze technologia PHP oraz ASP, ale w przeciwie±stwie do CGI tre╢µ skryptu musi byµ osadzona w tre╢ci pliku HTML. 

Je┐eli masz komercyjny serwer powiniene╢ mieµ w nim katalog cgi-bin ( taka nazwa jest zazywczaj ). Ot≤┐ skrypty CGI nie mog▒ byµ umieszczone "byle gdzie". Musi byµ do tego specjalny katalog - serwer bΩdzie wiedzia│, ┐e pliki w nim umieszczone to programy CGI i bΩdzie je uruchamia│. 

SSI

Je┐eli masz mo┐liwo╢µ uruchamiania skrypt≤w CGI na swoim serwerze to dowiedz siΩ jeszcze od administratora, czy masz mo┐liwo╢µ wykorzystania SSI ( Server Side Include ). Jest to bardzo przydatna technika ( czΩsto wykorzystywana w po│▒czeniu z CGI ), kt≤ra umo┐liwia w│▒czanie do tre╢ci pliku HTML czego╢ :) No w│a╢nie - mo┐e to byµ np. plik CGI, albo co╢ innego. W takim wypadku nale┐y nadaµ plikowi rozszerzenie *.shtml a nie *.html albo *.htm. 

Czy masz mo┐liwo╢µ wykorzystania SSI? Spytaj siΩ administratora, albo spr≤buj wy╢wietliµ stronΩ SSI. Tak jak powiedzia│em SSI to zwyk│y plik HTML tylko, ┐e z innym rozszerzeniem. Wstaw gdzie╢ do kodu tak▒ linie:

<!--#echo var="DATE_LOCAL" --> 

Taka komenda spowoduje wstawienie w to miejsce aktualnej daty - je┐eli tak siΩ stanie masz SSI. Ok, jak powiedzia│em wcze╢niej istnieje mo┐liwo╢µ wykorzystania CGI w po│▒czeniu z SSI. Niedawno poda│em przyk│ad licznika odwiedzin. Liczba odczytana z pliku musi byµ jako╢ w│▒czona do tre╢ci strony HTML - to w│a╢nie umo┐liwia SSI:

<!--#exec cgi="/cgi-bin/jakis_skrypt.cgi"-->

Takie co╢ spowoduje w│▒czenie skryptu "jakis_skrypt.cgi" do tre╢ci strony.

Masz ju┐ podstawy do nauki samego Perla, czyli jΩzyka, w kt≤rym pisane s▒ skrypty. Oto odpowiednie linki:

Perl.zip ( 19 kB ) - kurs Perla
Perltut.zip ( 29 kB )- kolejny bardziej rozbudowany kurs.

Je┐eli bΩdziesz mia│ jakie╢ pytania to napisz do mnie - chΩtnie odpowiem i poprawie ten artyku│.

Adam Boduch