O CGI (Common Gateway Interface) skriptech se toho může napsat hróóóózně moc. CGI skript je nějaký program, který na základě vstupních dat vygeneruje pomocí filtru zcela novou stránku, která však musí být v platném tvaru HTML. Pro programátora to znamená, že musí skript udělat tak, aby výstupem byl text ve formátu HTML.
Aby to nebylo složité, může být CGI skript v jakémkoli jazyku, který zvládá server. Pokud programátor umí assembler, může být dejmetomu v assembleru (ikdyž by mě zajímalo, jak takový CGI skript v assembleru vypadá). Pokud běží server na UNIXu, jsou skripty obvykle v Perlu (skriptovací jazyk určený ve velké většině pro práci s textem) nebo v nějakém shellu (většinou Bourne shell nebo C shell).
Skripty jsou ošemetná věc, protože se s nimi nechá udělat v podstatě všechno. Když si chcete nějaký skript udělat a potom ho na své stránce použít, musíte přemlouvat správce, jinak je vám skript k ničemu. Skripty totiž musí být v jednom adresáři, aby o nich www démon (třeba apache) věděl, že jde opravdu o CGI skript a né o nesmyslný text. Tyhle adresáře jsou z bezpečnostních důvodů většinou nepřístupné uživatelům (teda přístupné musí být, ale normální uživatel do nich nemůže psát...).
Já jsem se setkal na UNIXu se skripty v Perlu (např. Satrapův SaCzech, který provádí změnu kódování czeštiny na stránce) a v Bourne shellu. Na Macovi je to dost často Apple script. Jinak se nechá skript udělat opravdu ve všem, důkazem toho budiž Microsoft, který dělá své skripty ve Visual Basic skriptu :-)))
Základní je, aby systém poznal, že jde o skript. Proto musí být umístěn v příslušném adresáři (v UNIXu například /var/httpd/htdocs/cgi-bin/
) a systém musí vědět, v jakém jazyce je skript napsán (to je otázka každého systému). To je vše, ostatní musí zvládnout programátor. Tady je příklad jednoduchého skriptu:
#!/bin/sh
echo "<HTML>"
echo "<HEAD>"
echo "<TITLE> Stránka CGI skriptů </TITLE>"
echo "</HEAD>"
echo "<BODY>"
echo 'grep -i $1 /var/httpd/htdocs/seznamy/seznam1' "<BR>"
echo "<P>"
echo Bylo zobrazeno 'grep -i $1 /var/httpd/htdocs/seznamy/seznam1 | wc -l' položek
echo "</BODY>"
echo "</HTML>"
Je napsán v Bourne shellu a způsobí, že zobrazí všechny řádky daného dokumentu, z nichž zobrazí jen ty, které obsahují daný řetězec. Počet nalezených řádků zpočítá.
Dál se o skriptech nebudu zmiňovat, protože se jedná o okrajový doplněk HTML. Možná o nich napíšu nějaký článek... (ikdyž asi víte jak to s tím mým „možná“ je ;-)