Hlavnß strßnka · DiskusnΘ F≤rum · PracovnΘ prφle₧itosti · Zoznam

 Main Menu
o Hlavnß strßnka
o Zoznam tΘm
o Zoznam
o OdporuΦte nßs
o U₧φvatelia
o VaÜe konto
o Pridaj Φlßnok
o ètatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyh╛adßvanie
o F≤rum
o Workoffice
o Zoznam Φlßnkov
o Reklama
o Pridaj Φlßnok
o Pridaj novinku

NapφÜte nßm
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Äiv∞.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o F≤rum ::
o Markup languages
o ScriptovΘ jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tΘmu ::

 PracovnΘ prφle₧itosti
o Pon·kate prßcu?
o H╛adßte prßcu?

 Autori developer.sk
o Martin NemeΦek
o SvΣ¥o Straka
o Jany Masaryk
o Jozef Murφn

 
CGI / Perl [ 05. November 1999] - Svato_Straka
V²stup CGI skriptu - 2. Φas¥ CGI
Mo₧no sa vßm bude zda¥, ₧e postupujeme od konca k zaΦiatku, ke∩ sme si eÜte nespomenuli niΦ o vstupe do CGI skriptu a u₧ sa vrhßme na v²stup. Mßm vÜak dva d⌠vody, preΦo takto postupujem. Prv² z nich je ten, ₧e CGI skript nemusφ v₧dy dosta¥ na svoj vstup dßta. Druh² je tie₧ vcelku prozaick² - darmo budem vedie¥ ako skriptu dßta odovzda¥, ke∩ neviem ako ich spracovanΘ vrßti¥ u₧φvate╛ovi.



Ako som u₧ spomenul v predchßdzaj·cich dieloch, v²stup skriptu pozostßva z dvoch Φastφ: http hlaviΦky a samotn²ch dßt. Tvorba dßt je zrejme ka₧dΘmu jasnß, pozrime sa teda na http hlaviΦky.

HTTP hlaviΦky

CGI skript (lepÜie povedanΘ jeho autor) sa m⌠₧e rozhodn·¥, Φi v CGI skripte vrßti kompletn· http hlaviΦku, alebo len jej Φas¥. VΣΦÜinou samozrejme programßtori volia druh· mo₧nos¥ - na v²stup svojho CGI skriptu posielaj· len tie najnutnejÜie riadky hlaviΦky a jej dotvorenie prenechßvaj· web servru. Uve∩me si teraz tak² prφklad:
print "Content-type: text/htmlnn";
print <<Koniec_Html;
<HTML>
<HEAD>
<TITLE>Jednoduch² virtußlny HTML dokument</TITLE>
</HEAD>
<BODY>
<H1>Virtußlny HTML dokument</H1>
<HR>
<P>
Tento dokument je v²stupom CGI skriptu $ENV{SCRIPT_NAME}.
</BODY>
</HTML>
Koniec_Html

exit(0);

Myslφm ₧e tento skript netreba ve╛mi vysvetlova¥ Φo sa Perlu t²ka, spomenul by som vÜak jednu Φrtu ktorß sa tu objavuje: vkladanie premenn²ch. Pok²m do textu, ktor² mß by¥ v²stupom skriptu vlo₧φte nßzov premennej a tßto premennß je definovanß, Perl automaticky doplnφ na danΘ miesto jej hodnotu. V naÜom prφpade teda bude $ENV{SCRIPT_NAME} zamenenΘ na skutoΦnΘ meno s·boru so skriptom.

Riadok print "Content-type: text/htmlnn"; v naÜom skripte je prßve tou Φas¥ou k≤du, ktorß generuje Φas¥ http hlaviΦky. KonkrΘtne tu je povedanΘ, ₧e MIME typ v²stupn²ch dßt bude text/html. Samozrejme ₧e MIME typ v²stupn²ch dßt nie je jedinou vecou, ktor· m⌠₧ete v http hlaviΦke urΦi¥. V nasleduj·cej tabu╛ke s· vymenovanΘ typy hlaviΦiek, ktorΘ m⌠₧e CGI skript vrßti¥.

Pri tvorbe http hlaviΦiek vo vaÜich skriptoch si v₧dy zapamΣtajte 2 zßsady:
  • Blok hlaviΦiek musφ by¥ oddelen² od dßt prßzdnym riadkom
  • Riadky hlaviΦky nemusia dodr₧iava¥ ₧iadne zvlßÜtne poradie

Samozrejme ako som u₧ spomenul, nemusφte nechßva¥ dotvorenie hlaviΦky na server ale m⌠₧ete ju v CGI skripte vytvori¥ kompletn·. Takto m⌠₧ete pri navracanφ dokumentu klientovi obφs¥ jeden z Φlßnkov re¥azca ktor²m vßÜ skript prechßdza. Treba vÜak pamΣta¥ na skutoΦnos¥, ₧e prφpadn· chybu v hlaviΦke u₧ nemß mo₧nos¥ server opravi¥.

Ako server zistφ, ₧e v²stup skriptu obsahuje kompletn· http hlaviΦku? Servery typu NCSA a CERN (spadß sem aj najpou₧φvanejÜφ web server - Apache) to spoznaj· pod╛a nßzvu CGI skriptu, ktorΘho meno musφ zaΦφna¥ re¥azcom "nph-", Φo znamenß Non-parsed header ("nerozobranß" hlaviΦka). V²stup takΘhoto skriptu ide priamo ku klientovi bez zapojenia servera.

Mo₧no sa p²tate, ak² to m⌠₧e ma¥ v²znam. Predstavte si situßciu, ke∩ chcete na strane klienta nieΦo postupne vypisova¥ po urΦitej dobe (napr. spravi¥ Φosi ako odpoΦφtavanie od 50 po jednej sekunde tak, aby ka₧d· sekundu skript vypφsal hodnotu, ktorß ostßva k nule). Keby₧e na toto pou₧ijete nekompletn· hlaviΦku, cel² skript by prebehol na servri a v²sledok by sa zobrazil a₧ po vykonanφ skriptu. Ak vÜak pou₧ijete kompletn· hlaviΦku, budete vidie¥ ako skript vypisuje jednotlivΘ hodnoty.

Myslφm ₧e pre dneÜok by staΦilo. Nabud·ce si povieme nieΦo viac o http hlaviΦkßch, presmerovaniach servra a nßvratov²ch k≤doch http po₧iadaviek.

 
 PrφsluÜnΘ odkazy k tΘme
Viac o tΘme: CGI / Perl | InΘ Φlßnky od: Admin | PoÜli komentßr | Strßnka vhodnß na tlaΦ width=15 height=11  PoÜli tento Φlßnok priate╛ovi, znßmemu width=15 height=11


NajΦφtanejÜie Φlßnky CGI / Perl:
╚o je to CGI? - ┌vod do CGI

╧alÜie Φlßnky v rubrike CGI / Perl:

 

"V²stup CGI skriptu - 2. Φas¥ CGI" | Login / vytvor konto | 0 Komentßrov
Prah
Za obsah komentßrov je zodpovedn² u₧φvate╛, nie prevßdzkovate╛ t²chto strßnok.



AutorskΘ prßva: á ⌐1999 - 2001 Developer Zone [developer@developer.sk]

VÜetky Φlßnky s· vlastnφctvom autorov Developer Zone. VÜetky prßva vyhradenΘ. Strßnky Developer.sk s· vytvorenΘ pomocou PHP-Nuke.
Odkazy na novΘ Φlßnky je mo₧nΘ prebera¥ pomocou:Backend.php.