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