http://www.kdesi.cz/cesta/stranka.htmlbude URL t‚‘e str nky p©i po‘adavku jej¡ho p©ek¢dov n¡ do sedmibitov‚ho ASCII
http://www.kdesi.cz/cgi-bin/toASCII/cesta/stranka.htmlP©edpokl d m, ‘e cesta ke k¢duj¡c¡m skript–m je /cgi-bin. M–‘ete pou‘¡t libovoln˜ ze skript– toXXXX (kde XXXX jsou jm‚na k¢d– v distribuci).
Tento odkaz v¨ak p©edpokl d , ‘e p©edem v¡te, jak˜ k¢d bude u‘ivatel vy‘adovat. To ‡asto nemus¡ b˜t pravda. V takov‚m p©¡padˆ doporu‡uji pou‘¡t skript whichcode a URL
http://www.kdesi.cz/cgi-bin/whichcode/cesta/stranka.htmlSkript whichcode u‘ivateli ozn m¡, ‘e c¡lov˜ dokument obsahuje diakritick znam‚nka a umo‘n¡ mu zvolit k¢d, kter˜ pova‘uje za optim ln¡.
<A HREF="kapitola1.html">Prvn¡ kapitola</A>klient p©epracuje relativn¡ URL kapitola1.html na absolutn¡. Vyjde p©itom z URL dokumentu, obsahuj¡c¡ho zna‡ku. Pokud bylo p–vodn¡ URL dokumentu nap©¡klad http://www.kdesi.cz/cgi-bin/toCP1250/cesta/obsah.html, povede zm¡nˆn˜ odkaz k dokumentu http://www.kdesi.cz/cgi-bin/toCP1250/cesta/kapitola1.html. Informace o k¢du byla zachov na.
Pozor! Chcete-li vyu‘¡vat pro uchov n¡ k¢du relativn¡ odkazy, nesm¡te v dokumentu pou‘¡t zna‡ku <BASE>, kter ur‡uje z kladn¡ URL dokumentu. Kdybyste ji pou‘ili, budou v¨echna relativn¡ URL vzta‘ena k lok toru, definovan‚mu touto zna‡kou, nikoli k URL, pod kter˜m klient z¡skal str nku.
Absolutn¡ odkazy je t©eba ©e¨it jinak. Tady pou‘¡v SaCzech metodu podobnou programu WWWdia. Do textu m–‘ete na kter‚koli m¡sto (v‡etnˆ cest) vlo‘it ©etˆzec
__CHARSET__K¢duj¡c¡ skript nahrad¡ ka‘d˜ v˜skyt tohoto ©etˆzce identifikac¡ k¢du, do kter‚ho pr vˆ p©ev d¡ str nku. Proto m–‘ete v textu pou‘¡t zna‡ku
<A HREF="http://www.jinde.cz/cgi-bin/to__CHARSET__/jinacesta/str.html">odkaz</A>Pokud str nka projde skriptem toKEYBCS2, kter˜ ji p©evede do k¢du KEYBCS2, bude v odeslan‚m dokumentu v t‚to zna‡ce uvedeno URL
<A HREF="http://www.saczechserver.cz/cgi-bin/toKEYBCS2/jinacesta/str.html">odkaz</A>P©edpokl d m, ‘e server, ur‡en˜ t¡mto absolutn¡m URL, m instalov n SaCzech. M–‘e, ale nemus¡ se jednat o tent˜‘ server, kter˜ poskytl p–vodn¡ dokument.
Jeliko‘ jsou n zvy k¢d– shodn‚ s programem WWWdia, mohou se na sebe navz jem korektnˆ odkazovat str nky, jejich‘ servery pou‘¡vaj¡ r–zn‚ implementace ‡e¨tiny. Absolutn¡ URL, uveden‚ v˜¨e, lze pou‘¡t i na str nce, kter je p©ek¢dov v na programem WWWdia. Pot©ebujete-li naopak sko‡it ze str nky k¢dovan‚ pomoc¡ SaCzech na str nku v pravomoci WWWdia, pou‘ijte pro tento odkaz URL
<A HREF="http://www.diaserver.cz/cgi-bin/charset/jestecesta/str.html?charset=__CHARSET__">odkaz</A>
D¡ky tomuto mechanismu m–‘ete na sv‚ str nky vkl dat relativn¡ odkazy na obr zky, zvuky a dal¨¡ druhy dat, kter˜m by p©ek¢dov n¡ rozhodnˆ neprospˆlo.
Jestli‘e se na str nce vyskytne zna‡ka
<IMG SRC="obraz.gif">a URL str nky je http://www.kdesi.cz/cgi-bin/toASCII/cesta/stranka.html, bude klient po serveru po‘adovat http://www.kdesi.cz/cgi-bin/toASCII/cesta/obraz.gif. Server spust¡ skript toASCII. Ten v¨ak zjist¡, ‘e je po nˆm po‘adov no k¢dov n¡ souboru s p©¡ponou .gif. M¡sto aby se pustil do d¡la, odpov¡ klientovi "hele s t¡mhle j nechci nic m¡t, vezmi si rovnou ten soubor". Klient si ho vezme a v¨e funguje k pln‚ spokojenosti v¨ech z£‡astnˆn˜ch.
<!--MYCHARSET=k¢d-->Nap©¡klad <!--MYCHARSET=CP1250-->. Po‡¡naje © dkem, obsahuj¡c¡m tento koment © (doporu‡uji jej uv‚st na samostatn‚m © dku na za‡ tku dokumentu), bude za v˜choz¡ k¢d dokumentu pova‘ov n k¢d CP1250.
Pro milovn¡ky patologick˜ch p©¡pad–:
<!--BAR-->SaCzech jej bˆhem zpracov n¡ textu nahrad¡ nab¡dkou mo‘n˜ch k¢d–, do kter˜ch lze str nku p©ev‚st. žiƒte se podobn˜mi pravidly, jako v p©¡padˆ MYCHARSET - v koment ©i neuv dˆjte nic jin‚ho a um¡stˆte jej na samostatn˜ © dek.
Chcete-li, aby nab¡dka k¢d– byla nadeps na anglicky (nap©. na anglick‚ str nce, kter obsahuje ‡esk jm‚na), pou‘ijte koment ©
<!--BAR E-->
Byl-li SaCzech instalov n s podporou protokolu HTTP, sta‡¡ jeho jm‚no p©edsadit v URL p©ed vlastn¡ skript - nap©¡klad
/cgi-bin/toASCII/cgi-bin/skript.cgi?raz+dvaKdy‘ klient projev¡ z jem o toto URL, server spust¡ SaCzech. Ten zjist¡, ‘e za n¡m v cestˆ stoj¡ vol n¡ CGI skriptu, nav ‘e HTTP spojen¡ se sv˜m serverem a jeho prost©ednictv¡m si nech skript spustit. V˜sledky, kter‚ mu prost©ednictv¡m HTTP spojen¡ p©ijdou, p©ek¢duje podle sv‚ p©irozenosti a po¨le jako odpovˆƒ klientovi.
Takto dok ‘e zavolat skript pomoc¡ HTTP metody GET i POST - pou‘ije samoz©ejmˆ tu z nich, kterou byl zavol n s m. Obecnˆ se SaCzech sna‘¡ b˜t co nejnen padnˆj¨¡m prost©edn¡kem mezi klientem (autorem dotazu) a c¡lov˜m skriptem (autorem odpovˆdi). Dotaz, kter˜ vznese, by mˆl b˜t co nejpodobnˆj¨¡ p–vodn¡mu dotazu klienta, v‡etnˆ HTTP hlavi‡ek.
SaCzech dok ‘e zmˆnit k¢dov n¡ i v dotazech, kter‚ p©ed v volan˜m CGI skript–m protokolem HTTP. SaCzech p©edpokl d , ‘e dotaz p©ich z¡ ve stejn‚m k¢du, do kter‚ho on bude p©ekl dat v˜sledek skriptu. Znaky z nˆj p©evede do z kladn¡ho k¢du serveru (d n p©i instalaci promˆnnou $source) a vol CGI skript s takto zmˆnˆn˜m dotazem. R–znˆ k¢dovan‚ dotazy u‘ivatel– jsou tedy p©ev dˆny do jednoho spole‡n‚ho k¢du. Ten je jednotn˜ pro cel˜ server.
Typick˜ p©¡klad: ‡esk str nka s formul ©em. Z kladn¡m k¢dem serveru je ©eknˆme KEYBCS2, u‘ivatel si str nku nech v p©elo‘it skriptem toCP1250. Formul © bude zah jen zna‡kou
<FORM ACTION=/cgi-bin/to__CHARSET__/cgi-bin/zpracuj METHOD=GET>D¡ky k¢duj¡c¡mu skriptu bude URL zpracov vaj¡c¡ho skriptu zmˆnˆno na /cgi-bin/toCP1250/cgi-bin/zpracuj - v˜sledky skriptu budou p©ev dˆny do t‚ho‘ k¢du, jako vlastn¡ str nka. V okam‘iku, kdy u‘ivatel ode¨le data, chop¡ se pr ce skript toCP1250 a metodou http p©edlo‘¡ serveru dotaz, volaj¡c¡ skript /cgi-bin/zpracuj. K nˆmu jako dotaz p©ilo‘¡ data od u‘ivatele, ov¨em p©edt¡m zmˆn¡ jejich k¢dov n¡ z CP1250 na KEYBCS2.
D¡ky tomu m te jistotu, ‘e zpracov vaj¡c¡mu skriptu p©ich zej¡ texty k¢dovan‚ v KEYBCS2 bez ohledu na to, jak˜m zp–sobem je u‘ivatel zadal. Jsem si vˆdom, ‘e tato vlastnost je problematick (proto ji lze vypnout). Jestli‘e si nap©. u‘ivatel zobraz¡ str nku bez diakritiky (pomoc¡ toASCII) a datech pak uvede znaky s diakritick˜mi znam‚nky, nedojde k jejich p©ek¢dov n¡. O patologick˜ch p©¡padech, kdy si u‘ivatel nech masochisticky v MS-Windows k¢dovat str nku do KEYBCS2 a data pak zad v v CP1250 ani nemluv¡m.
V p©¡padˆ, ‘e c¡lov˜ skript je vol n HTTP metodou POST, je m¡sto dotazu (CGI promˆnn‚ QUERY_STRING) p©ek¢dov no tˆlo dotazu, kter‚ v tomto p©¡padˆ p©en ¨¡ data.
Uv¡t m va¨e n zory na u‘ite‡nost t‚to vlastnosti. Tak‚ si nejsem jist, zda
nˆkter˜ klient nebude ‡esk‚ znaky v URL p©ed vat pomoc¡ URL k¢dov n¡ (procento,
n sledovan‚ dvˆma ¨estn ctkov˜mi ‡¡slicemi) a zda tedy m nebo nem smysl
takov‚ ©etˆzce dek¢dovat, n slednˆ zmˆnit jejich k¢d a opˆt zak¢dovat na
%XX.
Zachov n¡ k¢du v obr zc¡ch s klikou
Zpracov n¡ obr zk– s klikou (clickable images, sensitive images, image maps) je
v sou‡asn‚ dobˆ ponˆkud rozt©¡¨tˆn‚. Existuj¡ celkem t©i alternativy:
/cgi-bin/to__CHARSET__/manualy/index,htmlTak‚ vol n¡ skriptu, posuzuj¡c¡ho sou©adnice, se mus¡ odehr vat prost©ednictv¡m SaCzechu. Obr zek s klikou vlo‘te do str nky nap©¡klad takovouto zna‡kou:
<A HREF="/cgi-bin/to__CHARSET__/cgi-bin/imagemap"><IMG ... ISMAP></A>SaCzech URL bˆhem p©ed v n¡ u‘ivateli zmˆn¡ podle moment lnˆ zvolen‚ho k¢dov n¡. Jestli‘e se m k¢dov n¡ vyb¡rat teprve pot‚, co u‘ivatel zvolil nˆkterou z polo‘ek obr zku s klikou, pou‘ijte v definici kliky obvykl˜ skript whichcode.
Upozor¤uji, ‘e mluv¡me o zpracov n¡ obr zku CGI skriptem. SaCzech proto mus¡ b˜t instalov n s podporou CGI skript–. Mus¡ tedy z¡sk vat dokumenty metodou guess nebo http.
S touto metodou SaCzech dok ‘e pohodlnˆ spolupracovat. Odkazy v definici kliky mohou b˜t relativn¡ nebo mohou obsahovat to__CHARSET__. Je-li definice kliky p©¡mo sou‡ st¡ str nky s obr zkem, nemus¡te se o nic starat a v¨e je v po© dku. Pokud je um¡stˆna v extern¡m souboru, mus¡ tento soubor proj¡t k¢duj¡c¡m skriptem, co‘ zajist¡te pat©i‡n˜m URL v atributu USEMAP.
Nen¡-li URL nijak omezeno, m te v podstatˆ dvˆ mo‘nosti:
Nep©¡jemnost¡ je pr vˆ ona nutnost nejprve volit k¢d. U‘ivatel se u‘ u‘ tˆ¨il na hodnotn‚ informace a m¡sto toho je obtˆ‘ov n jak˜msi k drov˜m dotazn¡kem, hem‘¡c¡m se jemu nezn m˜mi pojmy, jako Macintosh ‡i Windows.
Cesta v URL tedy bude za‡¡nat /cgi-bin/toASCII/... a nˆkde na str nce bude obsa‘ena nab¡dka mo‘n˜ch k¢d– (doporu‡uji generovat prost©ednictv¡m koment ©e <!--BAR-->). Jako v˜choz¡ k¢d rozhodnˆ pou‘ijte ASCII, kter˜ je stejnˆ dob©e srozumiteln˜ pro v¨echny klienty.
Nev˜hoda t‚to metody spo‡¡v v tom, ‘e se mo‘n zbyte‡nˆ p©en ¨el Internetem dlouh˜ text. U‘ivatel dostane str nku v ASCII, vz pˆt¡ se ji p©epne t©eba do ISO-8859-2 a cel˜ p©enos v ASCII byl tud¡‘ k ni‡emu.
Chcete-li se tro¨ku roz¨oupnout, m–‘ete za©¡dit, aby se z ofici ln¡ho URL (kter‚ nem–‘ete mˆnit) klient automaticky p©esunul nˆkam jinam (a tady u‘ se zase daj¡ pou‘¡t v˜¨e zmi¤ovan‚ postupy). Takov‚ p©esmˆrov n¡ se m–‘e odehr t buƒ na £rovni serveru (bude pot©eba zasahovat do konfigurace server, tak‘e se asi neobejdete bez spolupr ce s jeho spr vcem) nebo pro nˆkter‚ speci ln¡ klienty (nap©. Netscape Navigator) p©¡mo na str nce. Ve druh‚m p©¡padˆ vlo‘te prostˆ do z hlav¡ dokumentu (mezi zna‡ky <HEAD> a </HEAD>) zna‡ku:
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=spr vn‚_URL">Podrobnˆji se o t‚to problematice m–‘ete do‡¡st v m‚ knizei WWW pro ‡ten ©e, autory a mision ©e (‡ st Dynamick‚ dokumenty à la Netscape, strana 252).
ScriptAlias /toASCII/ /www/cgi-bin/toASCII/v konfigura‡n¡m souboru srm.conf. P©edpokl d m, ‘e CGI skripty (a mezi nimi SaCzech) jsou um¡stˆny na disku v adres ©i /www/cgi-bin.
atd.
Tato str nka je sou‡ st¡ on-line dokumentace programu SaCzech.Pavel Satrapa
28. kvˆtna 1996