This page is part of documentation of
C-SaCzech
and was created and has been maintained by
Jarom�r Dole�ek,
[email protected]
C-SaCzech CSACEK_VERSION
Autor:
J�ra Dole�ek,
[email protected]
Datum posledn� zm�ny: 3.prosince 1996, 18:03
C-SaCzech je zkratka vzniknuv�� z C a
SaCzech, a znamen� C-Satrapa's Czech
(tedy C��kovsk� Satrapova �e�tina)
Jako jm�no se ujalo krat�� a v�sti�n� "CS��ek".
Jedn� se program, kter� umo��uje zm�nu k�dov�n� WWW dokument� "on fly" podle
p��n� u�ivatele. Str�nky jsou ulo�eny v ur�it�m typu k�dov�n� (ne nutn�
jednom) a CS��ek je b�hem odes�l�n� u�ivateli
zm�n� tak, aby je klient dok�zal spr�vn� zobrazit.
Pro� verze v jazyce C, kdy� p�vodn� s��ek skv�le funguje ? P�edev��m proto, �e
verze v Perlu byla na m�j vkus trochu pomal�. Moje my�lenka byla,
�e n�co, co bude pou��vat �asto hodn� lid�, m� b�t co nejefektivn�j��,
nejrychlej�� a m�lo n�ro�n� na syst�mov� zdroje.
A tak vznikl C-SaCzech 1.0, jako potomek SaCzechu 2.0. Jeho
pozd�j�� verze s sebou p�inesly
mnoh� roz���en�, tak�e nen� zaru�ena zp�tn� kompatibilita
nov� vytvo�en�ch str�nek. Star� str�nky budou fungovat bez pot���.
S nov�mi verzemi SaCzechu se C verze sna�� dr�et krok, co� se zat�m
da��.
CS��ek by asi nevznikl bez p�n�
Pavla Satrapy, jeho�
SaCzech byl p�edlohou p�i vytv��en� tohoto programu. Nikdy by
taky nebyl tak dobr� jako je nyn� bez podn�tn�ch p�ipom�nek
a pomoci mnoh�ch dal��ch lid�, z nich� bych cht�l asi nejv�ce
pod�kovat Hynkovi Medovi.
CS��ek je mo�no st�hnout na ftp serveru ftp://ftp.muni.cz/pub/localization/csacek/.
CS��ek 1.3 je moment�ln� k dispozici ve verzi pro Unix, ve zdrojov� form�.
P�n� Zde�ka Pokorn�ho port na NT je odvozen z CS��ku 1.23, verze 1.3
bude naportov�na na NT hned, jak budu m�t chv�li (cca 2 dny) �asu.
CS��ek 1.23NT naleznete na tomt� m�st� jako norm�ln� CS��ek.
I kdy� byl d�n CS��ek k t�m�� voln�mu pou�it�, p�esto plat� jist�
licen�n� podm�nky. Pros�m p�e�t�te si
je d��v ne� budete CS��ek pou��vat.
Dokumentace
M�te-li p�ipom�nky k programu, zjistili jste n�jak� chyby nebo
m�te n�m�t na vylep�en�, m��ete m� kontaktovat na m�
e-mailov� adrese.
Pokud se tato str�nka u� proch�z� p�es CS��ek a chcete ��st v jin�m
k�dov�n� �e�tiny, vyberte si z li�ty, kter� se vyp��e
pod n�pisem V�b�r k�dov�n�:
V�b�r k�dov�n�:
Licence
Upozorn�n�:
Program C-SaCzech je dod�v�n zcela bez z�ruk. Autor neru�� za jak�koli
�kody, vznikl� jeho pou��v�n�m. Zd�raz�uji - autor je z��k� VE�KER�
ODPOV�DNOSTI za �kody vznikl� p��m�m �i nep��m�m pou��v�n�m CS��ku
�i kter�koli jeho sou��sti.
Copyright
CS��ek �i jeho libovoln� ��sti (jako public domain) m��ete voln� pou��vat
ve zdrojov� i bin�rn� form�, pro soukromou
pot�ebu, v�uku, tak i na komer�n�ch serverech. Je d�n k v�eobecn�mu
u�it� v podm�nk�ch upraven� BSD licence:
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by Jaromir Dolecek, ICS MU
and contributors
4. Neither the name of Jaromir Dolecek nor the names of ICS MU
may be used to endorse or promote products derived from this software
without specific prior written permission.
5. On page, where users choose their encoding (normally the one
generated by whichcode script) will be text:
Coded by C-SaCzech.
and link to program's home page (http://www.ics.muni.cz/~dolecek/c-saczech/)
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Pro u�ivatele to znamen�, �e
jak�koli redistribuce mus� obsahovat soubor COPYRIGHT a jak�koli
reklamn� materi�l hovo��c� o v�hod�ch a vlastnostech CS��ku �i
odvozen�ho software mus� jednozna�n� ��ct, �e tento produkt
obsahuje software vyvinut� Jarom�rem Dole�kem, �VT MU a
jeho n�sledn�ky. Ani moje jm�no, ani jm�no �stavy v�po�etn� techniky MU
nesm� v�ak b�t pou�ito ke schv�len� nebo podpo�e jak�chkoli
odvozen�ch produkt� bez p�semn�ho povolen� od autora nebo �VT MU.
P�i redistribuci �i kone�n�m nasazen� na server d�le:
- V dokumentaci a k�du z�stane zachov�na informace o p�vodn�m autorovi a
autorsk�ch pr�vech.
- Na str�nce, nab�zej�c� volbu k�dov�n� (v p�vodn� distribuci generov�na
skriptem whichcode), z�stane zachov�na informace o tom, �e zm�na
k�dov�n� je realizov�na programem C-SaCzech, a odkaz na dom�c�
str�nku programu (http://www.ics.muni.cz/~dolecek/c-saczech/).
R�d bych vid�l, jak se CS��ek ����, budu tedy r�d,
pokud byste mi napsali kr�tkou zpr�vu
na adresu [email protected],
jestli�e jej budete pou��vat. Budu pot�en ;-).
Zp�t
 
Pro� vznikl ?
Uv�domuji si, �e ji� existuj� velmi kvalitn� programy pro
konverzi k�dov�n� na WWW - a� u� je to
WWWdia pana J.Ko���la nebo program
SaCzech
od p. Pavla Satrapy, kter� byl vzorem i pro tento program.
WWWdia m� osobn� p�ipad� a� p��li� n�ro�n� na instalaci (ani
po hou�evnat�m asi 2 hodinov�m �sil� se mi ho nepoda�ilo dostat
do pou�iteln� b�haj�c� verze) a zbyte�n� komplexn� a slo�it�.
SaCzech se mi od prvn�ho pohledu l�bil, ale postupem �asu
mi za�alo vadit, �e odezva s pou�it�m p�ek�dov�n� byla v�razn� pomalej��
ne� bez n�j. A proto jsem se rozhodl napsat n�jakou rychlej�� verzi,
a proto�e algoritmus p�ek�dov�v�n� asi v�razn� zlep�it u� nelze, zvolil
jsem ni��� programovac� jazyk - C.
Bylo (a st�le je) s CS��kem mnoho pr�ce, ale z�m�r je spln�n -
CS��ek funguje a je v�razn� �ipern�j�� ne� SaCzech.
C-SaCzech CSACEK_VERSION nab�z�
- jednoduch� vytv��en� odkaz� - zvl�d� relativn� odkazy
- je mo�no (narozd�l od WWWdia) pou��vat relativn� odkazy
na obr�zky
- mo�no pou��vat r�zn� k�dy ve zdrojov�ch textech str�nek; je dokonce
mo�no pou��t v�c k�d� v r�mci jedn� str�nky
- mo�nost k�dovat v�stup z {cgi|atapi}-skript�
- l�pe vyu��v� syst�mov�ch zdroj�,
co� se projev� zejm�na pokud je WWW server hojn� zat��en �i nav��evov�n
(provedl jsem p�r srovn�vac�ch test�)
- pot�ebuje v�razn� m�n� pam�ti ne� Perl skript (na m�m NetBSD
pot�ebuje perl 5.003 ke spu�ten� 413k {376k textov� segment}, CS��ek
30k {24k textov� segment}, bez sd�len�ch knihoven)
- tr�v� v re�imu j�dra m�n� �asu (ve srovn�n� se SaCzech)
- celkov� �as b�hu je men��
- mo�nost psan� v�cejazy�n�ch verz� dokumentu v jednom souboru
- mo�nost m�nit obsah dokumentu podle dom�ny, odkud se pristupuje
- mo�nost filtrovat vstup/vystup do/z CS��ku skrz jin� programy
- podporu SSI (shtml dokumenty)
- podpora ochrany p��stupu pomoc� lok�ln�ch konfigura�n�ch
soubor� (�asto .htaccess)
- mo�nost automatick�ho generov�n� li�ty s nab�dkou k�dov�n�
- podstatn� jednodu��� instalace ne� WWWdia
C-SaCzech postr�d�
- k�dovou samoobsluhu (nap�. WWWdia m�)
- jednoduchost a okam�itou konfigurovatelnost skriptu
Budoucnost ...
Zd� se, �e se CS��ek zal�bil mnoha lidem a je pou��v�n. Dokonce se
na�li lid�, kter�m st�lo za to ud�lat port na jin� opera�n� syst�m.
Nejd��ve to byly NT. Pan
Zden�k Pokorn�
jej vytvo�il z CSacku 1.23. Tato verze byla zahrnuta do
distribuce CS��ku 1.3, v dob� psan� t�to str�nky byla jinak
dostupn� na
ftp://zps.agc.cz/ShareWare/CSaczech/.
Pan Martin B�l� za�al
pracovat na portu pro OpenVMS. V dob� psan� t�to str�nky
(16.11.1996) byl v z�v�re�n� f�zi. Dom�c� str�nka
tohoto portu bude na adrese
http://cs.felk.cvut.cz/c-saczech/.
A co �ek� CS��ek do budoucna ? Port pro NT by se m�l st�t p��mo sou��st�
CS��ku a bude se vyv�jet z�rove� s Unixovou verz�. To sam� by bylo
vhodn� ud�lat pro OpenVMS, ale bude to asi trochu slo�it�j��, proto�e
na ��dn� OpenVMS syst�m nem�m p��stup.
R�d bych tak� trochu pro�istil k�d, je�t� CS��ek zrychlil (jestli
to bude mo�n�) a ud�lal jej trochu intuitivn�j��m a nyn�j��
jednotliv� izolovan� p��kazy slou�il do jazyka podobaj�c�ho se C.
Tak� by bylo t�eba zahrnout podporu Unicode a snad n�kter�ch dal��ch
obl�ben�ch kod�r�.
Zp�t
Instalace
CS��ek je ud�l�n tak, aby byl pokud mo�no co
nejjednodu��� na instalaci a �dr�bu. Od verze 1.3 byly rozd�leny
zdrojov� soubory tak, aby byl pokud mo�no portovateln�.
V praxi zat�m neodzkou�eno, ale v�echny funkce
pro jednotliv� podporovan� opera�n� syst�my jsou
v samostatn�m souboru, odd�len� od t�la CS��ku. Port na jin�
opera�n� syst�m ne� Unix je tedy mo�n�, zat�m proveden�
portace byly ud�l�ny v�t�inou p�eps�n�m v�t�iny k�du tak, aby
to na v�sledn�m syst�mu bylo pou�iteln�.
Distribuce zdrojov�ho k�du programu je ulo�ena v souboru
csaczechXXX.tar.gz (kde XXX
je ozna�en� verze), kter� m��ete z�skat na URL
ftp://ftp.muni.cz/pub/UNIX/localization/
Ten obsahuje zdroj�ky pro Unixovou verzi a v podadres��i
NT/ zdrojovou a bin�rn� distribuci CS��ku pro NT,
kterou dal k dispozici pan Zden�k Pokorn� (dal�� info
k NT portu viz Budoucnost CS��ku).
Distribuci je t�eba rozbalit pou�it�m p��kazu
gunzip < csaczechXX.tar.gz | tar xvf -
pokud m�te GNU tar sta��
tar xvzf csaczechXX.tar.gz
Soubory budou rozbaleny do podadres��e csaczech-XX. Pot� n�sleduje f�ze
p�izp�soben� va�im konkr�tn�m podm�nk�m. Po kr�tk�m obdob�
la�kov�n� s GNU configure jsem se rozhodl p�ecejen
pou��vat pouze make. Konfigurace tedy spo��v�
v upraven� hlavi�kov�ho souboru config.h a �prav�
souboru Makefile. Je t�eba tyto dva soubory
zeditovat, zakomentovat to co nechcete a nastavit
prom�nn� tak, aby v�e odpov�dalo Va�emu syst�mu a tomu, co
(ne)chcete po CS��ku. Bohu�el Makefile je
ud�lan� na a pro Unix (pou��v� sed(1) a chmod(1),
pro n� pokud v�m nen�
ekvivalent pod NT), tak�e nen� bez �prav pou�iteln� na n��em jin�m.
Still no prob these times.
N��e je uveden p�ehled prom�nn�ch a voleb, kter�mi m��ete ur�it
chov�n� budouc�ho CS��ku. Pokud V�m vyhovuje standardn� nastaven�
nebo jsou pro v�s dostate�n� popisy p��mo v souborech
config.h a Makefile,
m��ete tuto ��st p�esko�it.
Prom�nn� jsou v po�ad�,v jak�m je najdete v p��slu�n�ch souborech.
- Prom�nn� ovliv�uj�c� chov�n� budouc�ho C-SaCzechu
(nastavuje se v config.h):
- FILESEPARATOR
- Znak, kter� chcete pou��t jako odd�lova� jmen soubor�
v DEFAULTFILE.
- Default - ,
- DEFAULTFILE
- Seznam soubor�, kter� se zobraz�, jestli�e je zad�n pouze adres��.
Nejrozumn�j�� je, pokud je stejn� jako seznam jmen
za DirectoryIndex v konfigura�n�m souboru pro httpd.
Pou�ije se pouze p�i vol�n� metodou file, pop�. guess.
- Default - index.html,welcome.html,Welcome.html,default.htm.
- CGIPATH
- Cesta k CGI skript�m. Obsahem t�to prom�nn� by m�l b�t za��tek cesty
(��st uv�d�n� bezprost�edn� za jm�nem serveru) ke konverzn�m
skript�m, kter� se uv�d� v odkazech.
Jestli�e konverzn� skripty ulo��te do obecn�ho
adres��e, obsahuj�c�ho ostatn� CGI skripty a budete se na n�
odkazovat pomoc� URL
http://www.kdesi.cz/cgi-bin/toASCII
m��ete ponechat implicitn� hodnotu "/cgi-bin".
Je t�eba uv�st celou cestu, bez z�v�re�n�ho lom�tka.
Tato hodota se pou��v� p�i metod� guess k ur�en�, zda
po�adovan� dokument je cgi skipt.
- Default - /cgi-bin
- CGISUFFIX
- P��pona CGI skirpt�. Pokud v� server vy�aduje, aby CGI skripty byly
vyzna�ov�ny ur�itou konkr�tn� p��ponou (nej�ast�ji .cgi), uve�te
ji jako hodnotu t�to prom�nn�. Je-li server dostate�n� inteligentn� na
to, aby poznal CGI skript podle cesty, doporu�uji ponechat jako hodnotu
prom�nn� pr�zdn� �et�zec.
- Default - nenastaveno.
- DEFSOURCE
- Implicitn� k�dov�n� zdrojov�ch text� str�nek. Zde uve�te k�dov�n�, ve
kter�m bude pravd�podobn� vytvo�ena v�t�ina Va�ich str�nek. Jestli�e
si str�nka nep�edep��e zdrojov� k�d, bude jako v�choz� pro jej�
p�ek�dov�n� pou�it tento k�d. Platn� n�zvy k�d� zjist�te
prohl�dnut�m souboru nazvy nebo (l�pe) cstools.h.
Ned�l� se rozd�l mezi velk�mi a mal�mi p�smeny.
- Default - ISO-8859-2.
- GETMETHOD
- Zp�sob, kter�m m� C-SaCzech z�sk�vat k�dovan� texty. M��ete si vybrat
jednu z n�sleduj�c�ch alternativ (mus� b�t vyps�no mal�mi p�smeny):
- file
- Soubory budou vyzved�v�ny p��mo ze syst�mu soubor� po��ta�e. Tento
zp�sob je efektivn� a rychl�, ale umo��uje k�dovat jen texty,
kter� jsou
p��tomny v podob� soubor�. Nelze nap�. k�dovat v�stupy z CGI
skript�.
- http
- V tomto re�imu pr�ce C-SaCzech z�sk�v� k�dovan� dokumenty od sv�ho
serveru prost�ednictv�m HTTP protokolu. Tedy zahraje si na WWW
klienta, odstran� sv� vlastn� jm�no z dotazu, kter� mu byl polo�en,
a polo�� serveru tento modifikovan� dotaz. Data, kter� z�sk� jako
odpov��, posoud� a bu� p�ek�duje (jestli�e se jedn� o text, p�esn�ji
MIME typ text/html nebo text/plain) nebo propust�
beze zm�ny.
Tento zp�sob je podstatn� m�n� efektivn� (obslou�en� ka�d�ho dotazu
vyvol�v� jeden dotaz nav�c), umo��uje v�ak p�ek�dovat v�e, co je na
serveru k dispozici - v�etn� v�stup� z CGI skript�.
Zvol�te-li tuto variantu, nem� ��dn� v�znam nastaven� prom�nn�
DEFAULTFILE a p��znak�
TIMESERVICES a IFMODIFIEDSINCE.
- guess
- C-SaCzech se pokus� automaticky ur�it pro ka�d� dotaz, kterou z v��e
uveden�ch metod m� pou��t. Vyu��v� k tomu hodnotu prom�nn�
CGIPATH a
CGISUFFIX.Jestli�e je za��tek
cesty ke k�dovan� informaci (��st URL, uveden� za vol�n�m skriptu)
shodn� s CGIPATH nebo obsahuje CGISUFFIX,
pou��je pro z�sk�n� dokumentu metoda
http. http se pou�ije i tehdy, jestli�e se ��d� o dokument .shtml
nebo v n�kter�m adres��i obsa�en�m v prom�nn� prost�ed�
PATH_TRANSLATED se nach�z� soubor s n�zvem uveden�m u
SECURE. V opa�n�m p��pad� jej vyzvedne
p��mo ze syst�mu soubor�.
Metoda guess se tedy sna�� o rozumn� kompromis
mezi p�edchoz�mi alternativami.
- Default - guess.
- TIMESERVICES
- Jedn� se o prvn� z p��znak�. Jestli�e je definov�na, znamen� to, �e
se lze spolehnout v�sledky funkce
stat programovac�ho jazyka C, kterou C-SaCzech vyu��v� pro
z�sk�n� informac� o velikosti a dob� vzniku souboru.
- Default - nastaveno.
- IFMODIFIEDSINCE
- M� skript reagovat na hlavi�ku If-Modified-Since? Pokud v�mi
pou��van� server nep�ed�v� CGI skript�m informace z HTTP hlavi�ek dotazu
(v prom�nn�ch prost�ed� HTTP_hlavi�ka),
nedost�v� C-SaCzech pot�ebn� informace. V takov�m p��pad� volbu vypn�te.
- Default - nastaveno.
- SECURE
- Pokud je definov�no, otestuje se, zda v n�kter�m adres��i z
PATH_TRANSLATED nen� soubor omezuj�c� p��stup
a slou��c� v�t�inou k autorizaci p��stupu. Jm�no souboru,
kter� se takto pou��v� z�le�� na tom, jak� httpd funguje na Va�em
serveru, p��padn� dotazy na to, jak� to je, sm�rujte na Va�eho
syst�mov�ho administr�tora.
- Default - ".htaccess"
- DECODEQUERY
- Definujte tuto prom�nnou, pokud chcete, aby C-SaCzech p�ek�dov�val
i parametr z p��kazov� ��dky.
- Default - nenastaveno.
- ADDBAR
- Pokud je nastavena tato prom�nn�, C-SaCzech bude reagovat
na text <!--BAR--> (pop�.<!--BAR E-->)
tak, �e v dan�m m�st� vyp��e text, umo��uj�c� zm�nu k�dov�n�
dokumentu; podle toho, kter� varianta je pou�ita,
dopln� bu� �eskou hlavi�ku a z�v�r (obsah prom�nn�ch
HEADBARTEX a TAILBARTEXT), nebo
anglick� (EHEADBARTEX a ETAILBARTEXT).
- Default - nastaveno.
- ALLWAYSADDBAR
- Pokud je tato prom�nn� nastavena, C-SaCzech vyp��e li�tu v�dy;
pokud text neobsahuje �et�zec <!--BAR-->, vyp��e
ji na konci dokumentu. Samoz�ejm� pouze tehdy, pokud dan�
dokument p�ek�dov�v� (tak�e obr�zky jsou v pohod�) nebo se
nejedn� pouze o chybov� hl�en�.
- Default - nenastaveno.
- LONGNAMEBAR
- Pokud je nastavena, v nab�dce k�dov�n� se zobraz� cel� jm�na
k�d� a ne pouze trojp�smenn� zkratky.
- Default - nenastaveno.
- HEADBARTEXT, EHEADBARTEXT
- Text, kter� se vyp��e p�ed li�tu s nab�dkou p�ek�dov�n�.
HEADBARTEXT se vyp��e v �esk� verzi, EHEADBARTEXT
v anglick�.
- Default - viz defaultni config.h.
- TAILBARTEXT, ETAILBARTEXT
- Text, kter� se vyp��e za li�tu s nab�dkou p�ek�dov�n�. Standartn�
je to "<HR>", tedy vodorovn� linka.
Op�t TAILBARTEXT je pro �eskou li�tu,
ETAILBARTEXT pro anglickou.
- Default - "<HR>".
- ADDWHICHCODE
- Pokud je nastavena, v automaticky generovan� nab�dce k�dov�n�
se zobraz� i obsah
prom�nn� BARWHICHCODENAME, kter� bude odkazem na
volbu pomoc� standartn�ho whichcode.
M� smysl pouze tehdy, pokud je nastaveno ADDBAR
.
- Default - nastaveno.
- BARWHICHCODENAME
- Text, kter� se vyp��e do li�ty.
- Default - "whichcode".
- MULTIPART
- Nastaven�m t�to prom�nn� bude zkompilovan� C-SaCzech podporovat
v�ce r�zn�ch dokumen� v jednom dokumentu; jak to funguje
se m��ete pod�vat na tento p��klad.
C-SaCzech bude reagovat na <--PART XXXXX-->
odpov�daj�c�m tak, �e podle n�zvu zjist�, zda m� danou
��st vypsat (pokud byl spu�t�n jako nap�. toASCII.eng.cgi,
bude vypisovat ��sti <--PART eng-->).
- Default - nastaveno.
- PARSE_DOCUMENT
- Podpora dokument� pou��vaj�c�ch SSI (p��kazy
<!--#exec, <!--#include).
CS��ek tak� provede odpov�daj�c� p��kazy v p��pad�, �e to
httpd neum� nebo nen� nastaven tak, aby um�l. Pozor, toto nastaven�
m��e obej�t syst�movou konfiguraci, tak�e pokud je n�jak� d�vod
pro� to nen� na Va�em serveru tak jist� tyt� d�vody hovo��
pro to, aby se SSI zak�zaly i v CS��ku. Pozor - jestli�e
WWW server SSI um� a v CS��ku je zak�ete, v�t�inou
se stejn� neprovedou.
Pokud chcete
povolit jen n�kter� ze dvou podporovan�ch p��kaz�,
m��ete tak ud�lat spr�vn�m (ne)nastavenim n�sleduj�c�ch dvou
p��znak�.
- Default - nastaveno.
- ENABLEEXEC
- Viz PARSE_DOCUMENT. Povol�
p��kaz "<!--#exec".
CS��ek CSACEK_VERSION um� prov�st jen exec cmd.
- Default - nastaveno.
- ENABLEINCLUDE
- Viz PARSE_DOCUMENT.
Povol� p��kaz "<!--#include".
CS��ek CSACEK_VERSION um� prov�st jen include file.
- Default - nastaveno.
- USECHARSET
- Pokud definov�no, CS��ek p�ip��e k�dovan�m dokument�m do hlavi�ky
k �daji Content-type krom� spr�vn�ho typy dokumentu i
nepovinn� parametr "charset"; n�kter� prohl��e�e, kter� um� MIME
se pak podle tohoto parametru dovedou za��dit a zobrazit
ve spr�vn�m k�dov�n�.
- Default - nastaveno.
- STATUSHACK
- N�kter� httpd (nap�. NCSA httpd, Apache httpd) maj� probl�my
s parsov�n�m hlavi�ky dokumentu, jestli�e se v ��sti Status:
uvede i typ serveru (tzn. p�ed�v� se i HTTP/1.0). Pokud
definujete tuto prom�nnou, status se p�ed�v� tak, aby prvn�
uveden� text za "Status:" bylo ��slo.
Tuto prom�nnou se doporu�uje definovat.
- Default - nastaveno.
- CSACEKFILTERS
- Umo�n� pou��vat "CS��ek filtry" k filtrov�n� vstupu/v�stupu
do/z CS��ku. Tzv. "CS��ek filtr" m��e b�t kter�koli
program kter� �te ze standartn�ho vstupu a zapisuje na standartn�
v�stup. Bli��� informace u
popisu p��kazu.
- Default - nenastaveno.
- NPH
- Pouze a jenom k testovac�m ��el�m, nedoporu�uji definovat dokud
opravdu nev�te co d�l�te. Pokud definov�no, CS��ek se chov�
jako by se jeho hlavi�ky u� nem�l httpd parsovat -> Status: je
bez kl��ov�ho slova Status:, p�eskakuje se �vodn� "nph-"
ve SCRIPT_NAME.
- Default - nenastaveno.
- LOCALHOSTHACK
- Pokud je definov�no, CS��ek se m�sto se serverem uveden�m v prom�nn�
prost�ed� SERVER_NAME kontaktuje s po��ta�em na kter�m byl spu�t�n.
V drtiv� v�t�in� p��pad� se jedn� o tent�� stroj, tak�e je to korektn�.
Spojen� se ale takto nav�e rychleji a tak� komunikace by m�la
b�t rychlej�� (nebylo testov�no). CS��ek se pokus� nav�zat spojen�
na IP adresu 127.0.0.1 co� je v�t�inou
spr�vn� spojen� na po��ta� na kter�m jede (aspo� na Unixu).
Definov�n�m tohoto p��znaku v�t�inou nic neztrat�te (kdy� nepom��e
aspo� neu�kod� ;-).
- Default - nastaveno.
- CSACEK_REPORT
- Pokud nastav�te tento p��znak, CS��ek vyp��e svoji konfiguraci,
pokud mu jako query podstr��te parametr
csacek_report nebo csacek_info.
Celkem u�ite�n� (aspo� se d� kdykoliv
zjistit, co moment�ln� verze um� a co ne).
- Default - nastaveno.
- CSACEK_BANNER
- Pokud je definov�no, CS��ek na za��tek dokument�, kter�
k�duje, nap��e kr�tk� info, �e to ud�lal. Pokud v�m to
vylo�en� vad�, m��ete to samoz�ejm� zak�zat.
- Default - nastaveno.
- RESTRICTDOMAINS
- Od verze 1.3_BETA je mo�no m�nit obsah dokumentu podle
dom�ny �i stroje, odkud vzd�len� u�ivatel p�istupuje.
Jedn� se o p��kaz DOMAIN,
pou��v� se podobn�m zp�sobem jako p��kaz PART, adresu
je mo�no zadat v dom�nov�m tvaru i jako �ist� IP.
- Default - nastaveno.
- CSACEK_HELP
- Jestli�e je definov�no a d�te CS��ku parametr ?csacek_help,
CS��ek vygeneruje kr�tkou str�nku s popisem p��kaz�, kter�
podporuje.
- Default - nastaveno.
- CSACEK_HOMEPAGE
- Jestli�e je definov�no a d�te CS��ku parametr ?csacek_homepage,
CS��ek p�esm�ruje klienta na dom�c� str�nku programu.
- Default - nastaveno.
- Prom�nn� pou��van� pouze v �ase kompilace
(soubor Makefile):
- CC
- Tato prom�nn� obsahuje jm�no kompil�toru, kter� bude pou�it
pro vytvo�en� spustiteln�ho C-SaCzechu. cc je standartn�
a programy j�m zkompilovan� by m�ly b�et bez probl�m�.
gcc je lep��, ale n�kter� WWW servery odm�taj� spustit
j�m zkompilovan� programy. Na syst�mech BSD/OS
se pou��v� cc nebo shlicc, pokud chcete aby
program pou��val sd�len� knihovny.
- Nastaveno na: cc
- CFLAGS
- Zde jsou uvedeny parametry p�edan� kompil�toru uveden�mu
v ${CC}. Jedna se v�t�inou o volbu optimalizace, pop�. i jin�
d�le�it� parametry (jako t�eba -fno-strength-reduce
pokud pou��v�te pro kompilaci nepatchnut� gcc 2.7.2 a pou��v�te
-O2).
- LFLAGS
- zde jsou uvedeny knihovny, kter� se mus� nalinkovat, aby
p�eklad prob�hl �sp�n�. Na SunOS a SCO Unix je
t�eba p�idat -lsocket -lnsl, na UnixWare
(a mo�n� i jinde) je�t� nav�c -lresolv.
- OS_TYPE
- Typ opera�n�ho syst�mu, na kter�m CS��ek budete cht�t kompilovat.
Prozat�m jedin� platn� hodnota je unix.
- Nastaveno na: unix
- LN
- P��kaz, kter�m se na va�em souboru ud�l� symbolick� (m�kk�) link.
- SHELL
- Jm�no shellu, kter� se m� pou��t ve skriptu whichcode.
M� cenu pouze pro Unix (pod NT pokud v�m nelze p��mo ve
skriptu nastavit, pod ��m se m� spustit). Podporovan� shelly
(respektive ty, kter� v�m, �e funguj�) jsou:
sh, ksh, bash, ash, zsh, pdksh, csh nefunguje,
nen� a nebude podporov�n.
- Nastaveno na: /bin/sh
- STRIP
- Zkompilovan� bin�rn� soubor obsahuje n�kter� informace, kter�
jsou pot� v�t�inou zbyte�n� (tabulku symbol� atd. pou��vaj�
se p�i lad�n� programu). Pokud tedy CS��ek budujete
pro norm�ln� pou��v�n�, nechte jako obsah strip,
jinak echo. U�et��te t�to zp�sobem asi
3k na disku ;-)
- Nastaveno na: strip
- CGIPATH
- Pravd�podobn� budete cht�t nastavit stejnou hodnotu jako
v config.h. V souboru Makefile se u��v�
pro ur�en� hodnory prom�nn� CGIPATH ve skriptech
whichcode, whichcode.eng.
- SUFFIX
- Uve�te, pokud chcete, aby generovan� soubory m�ly n�jakou p��ponu
(nap�. .cgi). Nen� z�visl� na hodnot� CGISUFFIX,
nastaven� v config.h.
- COMPILEDIR
- Kam se maj� ulo�it zkompilovan� bin�rky, soubory obsahuj�c�
symbolick� linky a soubory whichcode. M��e
b�t i adres��, kde m�te ostatn� CGI skripty, u�et��te si
takl jeden krok p�i instalaci.
- CSACEK_CODES
- Seznam k�d�, mezi kter�mi CS��ek um� p�ev�d�t. Kdy� se
v z�v�re�n� f�zi kompilace budou vytv��et symbolick� odkazy
na soubor, kter� bude on�m "centr�ln�m" p�evodn�kem,
vytvo�� se pouze odkazy se jm�ny z tohoto seznamu. Ve v�t�in�
p��pad� asi nen� t�eba p�enastavit.
- PARTLIST
- Seznam n�zv� ��st� (viz p��kaz PART),
kter� chcete na va�em syst�mu pou��vat.
- Nastaveno na: eng.
- CZ_WHICHCODE, ENG_WHICHCODE, WHICHCODE_DIR
- WHICHCODE_DIR obsahuje adres��, ve kter�m jsou
defaultn� z�klady ke skript�m whichcode a
whichcode.eng. Pod�vejte
se tam a podle toho, kter� v�m vyhovuje nastavte
p��slu�n� i prom�nn� CZ_WHICHCODE a ENG_WHICHCODE.
T�m je ukon�ena konfigura�n� f�ze.
Nyn� by v ide�ln�m p��pad� (kter� m��e a nemus� nastat) m�lo sta�it
d�t p��kaz:
make
Tento program na z�klad� Makefile vytvo�� v podadres��i
zadan�m v prom�nn� COMPILEDIR
zkopilovan� program to$TARGET a ostatn�
soubory toXXXX, kter� jsou symbolick� odkazy na tento soubor; d�le pak tak�
spustiteln� whichcode a whichcode.eng
na z�klad� soubor� zadan�ch jako
CZ_WHICHCODE a ENG_WHICHCODE. Tak� p��slu�n�
tyto dva soubory nalinkuje (tak, aby exitovaly odkazy
to__CHARSET__ a to a
to__CHARSET__.eng a to.eng.
Pokud bylo definov�no CGISUFFIX
v�echny soubory budou m�t samoz�ejm� odpov�daj�c� p��ponu.
Pokud si p�ejete, m��ete nyn� je�t� upravit koment��e ve vytvo�en�m
$COMPILEDIR/whichcode.
A nyn� u� jen sta�� p�esunout soubory z podadres��e compile
do adres��e s ostatn�mi CGI skripty tak, aby je httpd mohl
spustit a "HUR�", CS��ek by m�l b�t p�ipraven k pou��v�n�.
Zp�t
P�enos do jin�ho opera�n�ho syst�mu
Potenci�ln� p�enos na jin� OS ne� Unix nen� tak jednoduch�.
Pokud za�neme od rozbalen� - je t�eba tar a GNU gzip
pro rozbalen�. Ale to by zas takov� probl�m b�t nem�l
(GNU software je voln� p��stupn� a porty z�kladn�ch
program� jako jsou tyto exituj� snad pro jak�koli na Zemi se
vyskytuj�c� syst�m).
Probl�mem mohou b�t dlouh� jm�na soubor�. jin� odd�lova�e
v n�zvech soubor�, nep��tomnost n��eho jako
shell �i make na v�sledn�m syst�mu, jin� konvence vol�n� skript�, jin�
syntaxe Makefile, jin�, nestandardn� C kompil�tor.
Nikoli nejmen��m m��e b�t, �e C kompil�tor na c�lov�m syst�mu
pou��v� jin� knihovny a funkce k p��stupu na s��.
D�le n�kter� funkce pro zpracov�n� textov�ch �et�zc� jsou sice
standardn� (POSIX.1), ale to neznamen�, �e zrovna
v� neunixov� C kompil�tor standard nedodr�uje nebo poru�uje ;-)
Dohromady podtr�eno a se�teno: je to jist� o���ek, ale p�i tro�e
n�mahy a mo�nosti p��stupu na Unixovou i c�lovou platformu
�e�iteln�.
Zp�t
N�vod k pou�it�
CS��ek p�edpokl�d�, �e bude spu�t�n jako CGI skript a vyu��v�
p��slu�n� prom�nn� prost�ed�. Nelze jej tedy spou�t�t samostatn�
(alespo� ne jednodu�e).
Obsah
Str�nku napi�te v k�du, kter� odpov�d� zvolen�mu implicitn�mu
k�du serveru. (Ve skute�nosti zdrojov� k�d nen�
omezen.) Vystavte ji, jak je obvykl�. Jedin�, co se zm�n�, bude URL, kter�m
je t�eba se odk�zat na str�nku. Jestli�e URL str�nky bez p�ek�dov�n� by
bylo
http://www.kdesi.cz/cesta/stranka.html
bude 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/toXXXX/cesta/stranka.html
P�edpokl�d�m, �e cesta ke k�duj�c�m skript�m je /cgi-bin.
Na m�sto XXXX m��ete dosadit kter�koli
z podporovan�ch typ� k�dov�n� (ASCII, ISO-8859-2, CP1250, ISO-8859-1,
CP852, KEYBCS2, MAC nebo KOI8-CS).
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.html
Skript 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�.
Je p�irozen�m po�adavkem, aby u�ivatel vyb�ral k�d jen jednou a p�i
odkazech na dal�� dokumenty z t�ho� zdroje se uchov�vala informace o
zvolen�m k�dov�n�. Nejjednodu��� cestou je relativn� odkaz. Kdy� do
dokumentu vlo��te odkaz pomoc� zna�ky
<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.
Trik - m��ete pou��t v dokumentu
zna�ku <BASE> na rozskokov� str�nce (ta, na kterou
�ten��i v�t�inou dojdou bez prek�dov�n�).
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.
P��klad:
str�nka http://kdesi/~ja/moje.html m��e obsahovat
zna�ku <BASE HREF=http://kdesi/cgi-bin/to__CHARSET__/~ja/moje.html>. Pokud �ten�� pou�ije n�kter� relativn� link, je p�inucen vybrat
si k�dov�n� a d�l u� se mu str�nky zobrazuj� v tom "jeho".
Absolutn� odkazy je t�eba �e�it jinak. Tady pou��v� CS��ek 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 (Kamen�ci),
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
C-SaCzech nebo 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� C-SaCzechu nebo SaCzechu na str�nku v
pomoc� WWWdia, pou�ijte pro
tento odkaz URL
<A HREF="http://www.diaserver.cz/cgi-bin/charset/jestecesta/str.html?charset=__CHARSET__">odkaz</A>
C-SaCzech je selektivn�. K�duje jen soubory s ur�it�mi p��ponami (implicitn�
.html, .htm, .txt a .cz ;
jak je zm�nit se do�tete v
kapitole Pod kapotou). Dostane-li k
p�ek�dov�n� soubor s jinou p��ponou, odm�tne se akce ��astnit a p�esm�ruje
klienta p��mo na doty�n� soubor. D�sledkem je, �e klient z�sk� soubor v
p�vodn�m tvaru beze zm�ny k�dov�n�.
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�
program 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.
Zm�na v�choz�ho k�du
Implicitn� v�choz� k�d, ve kter�m budou ps�ny dokumenty, ur�uje spr�vce
serveru p�i instalaci program� C-SaCzech. M�lo by se jednat o k�d, ve kter�m
bude vytv��ena v�t�ina str�nek (nejl�pe v�echny). Pokud autor pou��v� k�d
jin�, m� dv� mo�nosti:
- P�ev�st str�nku do implicitn�ho k�du.
- To je m�n� pohodln� a nav�c to komplikuje pozd�j�� �pravy na str�nce
(ka�d� �prava bude vy�adovat nov� p�ek�dov�n�).
- Ponechat str�nku v k�du p�vodn�m a vyzna�it jej.
- K vyzna�en� p�vodn�ho k�du dokumentu se pou��v� HTML koment�� v
p�esn� definovan�m tvaru
<!--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.
Dokonce m��ete pou��vat n�kolik r�zn�ch k�d� v jednom dokumentu. Jestli�e
je prvn� polovina textu ps�na v k�du Kamenick�ch a druh� v MS-Windows,
sta�� p�ed ka�dou ��st vlo�it p��slu�n� koment�� a v�sledek bude u�ivateli
odesl�n ve spr�vn� podob� - ob� poloviny se korektn� p�ek�duj� nap��klad
do ISO Latin 2. Takov� dokumenty sice pova�uji za zv�rstvo, ale ta mo�nost
tu je...
Pro milovn�ky patologick�ch p��pad�:
- V jednom koment��i nesm� b�t nic jin�ho ne� specifikace
MYCHARSET=k�d.
- Pou�ijete-li n�kolik koment���, obsahuj�c�ch MYCHARSET,
pou�ije se prvn� z nich
- ��innost MYCHARSET za��n� ��dkem, na kter�m se vyskytuje.
Pokud se tak spr�vce rozhodne p�i instalaci, m��ete na str�nk�ch k�dovan�ch
C-SaCzech vyu��vat automatick�ho generov�n� li�ty s nab�dkou k�dov�n�.
Jak se to d�l� a co v�e lze nastavit se do�tete v ��sti
Instalace.
Ve str�nk�ch pak sta�� v m�st�, kde chcete m�t nab�dkovou li�tu,
napsat p��kaz
<--BAR-->
kter� zp�sob�, �e C-SaCzech v dan�m m�st� vytvo�� a vyp��e li�tu
s nab�dkou. Pokud je tak C-SaCzech nakonfigurov�n,
vypisuje li�tu automaticky na konci dokumentu,
pokud u� li�ta nebyla alespo� jednou vyps�na p�edt�m.
Pokud chcete doc�lit speci�ln�ho tvaru li�ty, m�te dv� mo�nosti.
Jedna je zadat parametry p��mo v p��kazu BAR
a druh� pou��t p��kazu BARDEF, kter� je identick�
s BAR a� na to, �e nezp�sob� vyps�n� li�ty.
V obou p��kazech jsou zadan� parametry platn� i pro v�echny
n�sleduj�c� p��kazy BAR. S v�hodou lze
takto nap�. p�edefinovat tvar li�ty a nechat
C-SaCzech vypsat li�tu na konci dokumentu
(k pou�it� p��kazu BAR viz. p��klad).
Pokud po�izujete dokumenty, kter� maj� v�c variant, a� u�
jsou nap��klad ve dvou r�zn�ch jazyc�ch nebo jsou nap��klad
odli�n� zpracov�ny pro zobrazen� r�zn�mi WWW browsery,
vyno�� se probl�m s aktualizac�. Jestli�e je takov�ch
dokument� v�ce, je t�eba pamatovat na to, aby se p��padn� zm�ny provedly
v ka�d�m souboru, a m��e se st�t (proto�e jsme lidi omyln�),
�e se zm�ny neud�laj� v�ude. Bylo by vhodn� m�t v n�jak�m
konzistentn�m form�tu v�echna spolusouvisej�c� data v jedin�m souboru.
Jak se to pou��v� ? ��sti ozna��me tak, �e na za��tek d�me speci�ln�
p��kaz, podle kter�ho C-SaCzech pozn�, �e zde za��n� nov� ��st.
Nap�.
<--PART ENG-->
vyzna�� novou ��st se jm�nem ENG. Pokud je pak je dan�
dokument p�ekl�d�n skriptem se jm�nem
toXXXX.eng (pop�. toXXXX.ENG), vyp��ou
se ��sti mezi <--PART ENG--> a jin�mi
��stmi (praktick� uk�zka pou�it� viz p��klad). P�i pojmenov�n�
��st� nez�le�� nez�le�� na mal�ch a velk�ch p�smenech (tzn.
��st MoJe se bere stejn� jako moje).
Je rezervov�no jedno jm�no, a to ALL. ��st pojmenovan�
jako ALL bude vyps�na v�dy, stejn� jako ��st dokumentu do
prvn�ho v�skytu p��kazu PART.
Je t�eba zajitit, aby se k dokument�m, kter� jsou takto naps�ny,
nedostal u�ivatel, ani� by p�e�el p�es CS��ek. Proto�e bez p�ek�dov�n�
m��e b�t onen text pon�kud ne�iteln� ...
Syntax je d�le rozeb�r�na v seznamu p��kaz�
Mo�n� jste se dostali do situace, kdy jste sice cht�li zp��stupnit
informace p�es Web, ale cht�li jste tyto informace vystavit
jen pro n�jakou uzav�enou skupinu lid�. A� u� t�eba lok�ln�
zrcadlo Pethousu nebo informace, za jejich� poskytov�n� se oby�ejn�
berou pen�ze (inzer�ty, statistiky, nab�dky ...). WWW server oby�ejn�
umo��uje omezit p��stup k adres���m obsahuj�c�m takov� informace
pomoc� speci�ln�ch konfigura�n�ch soubor� (nej�ast�ji .htaccess).
Od verze 1.3_ALPHA CS��ek tuto ideu podporuje a pokud je p�inucen
p�en�et takto chr�n�n� dokument, po��d� o p�enos p��mo http d�mona m�sto
aby si ho s�m vyzvedl ze syst�mu soubor�.
Potenci�ln� probl�my s p�ek�dov�v�n�m chr�n�n�ch soubor� jsou diskutov�ny
n��e.
Bohu�el to nen� tak jednoduch� jak by se na prvn� pohled zd�lo. CS��ek
toti� samoz�ejm� pot�ebuje k p��stupu p��slu�n� heslo. Ale toto heslo
se standardn� ��dn�m zp�sobem skriptu p�i spou�t�n� nep�ed�v�,
z bezpe�nostn�ch d�vod�. Pokud toti� nem�te absolutn� kontrolu nad t�m
jak� CGI skripty se V�m na serveru vyskytnou, mohl by spu�t�n� skript
velice snadno tuto informaci zneu��t, proto�e heslo se v protokolu HTTP
p�en�� nezak�dovan�, jen upraven� pro p�enos (pou�it�m base64).
Pokud tedy m�te kontrolu nad v�emi skripty na Va�em serveru, m��ete
vcelku jednoduch�m zp�sobem upravit httpd tak, aby mezi prom�nn�
pros�ed� spou�t�n�ho skriptu byl p�id�n i obsah hlavi�ky
"Authorization".
Co je to SSI (neboli Server Side Includes) se m��ete
do��st tak� jinde.
Je to zp�sob, jak pomoc� speci�ln�ch konstrukc� p��kaz� vkl�dat
dynamicky do dokument� jin� dokumenty, v�stup z program� apod. Pokud
V� server SSI nepodporuje a V�m by se n�co takov�ho hodilo,
CS��ek V�m v tomhle pom��e. Jak ? Dokument, kter� takov�to p��kazy
pou��v�, CS��ek p�ed� ke zpracov�n� WWW serveru a pokud
je server ignoruje, CS��ek je vyhodnot� a provede.
Pod�vejte se jak� prom�nn� mus�te
nastavit p�ed kompilac� CS��ku a jak� p��kazy
pak m��ete pou��vat.
Shtml je v�t�inou p��pona dokument�, kter� pou��vaj� tyto speci�ln�
p��kazy. CS��ek od verze 1.3_ALPHA je samoz�ejm� nyn� rozpozn� a p�ek�dov�v�
(p�edchoz� verze dokument .shtml h�zely do jednoho pytle
s obr�zky a jin�mi daty, kter�m p�ek�dov�n� nesv�d��).
CS��ek tak� m��e na vytv��en� dokumentu spolupracovat s jin�mi programy.
Realizace je pomoc� Unixovsk�ch trubek. Jedin� podm�nka, kterou
mus� program spl�ovat je, aby �etl ze standartn�ho vstupu a psal
na standartn� v�stup. A jak to cel� funguje ? Pokud CS��ek p�i
�ten� dokumentu naraz� na speci�ln�
direktivu, m��e za��t filtrovat
po�adovan� dokument skrz zadan� program. Ud�l� n�sleduj�c�:
- bu� a) spust� zadan� program tak, aby nejprve on �etl dokument,
p�etvo�il ho podle sv�ch p�edstav a sv�j v�sledek p�ed�val
CS��ku,
- nebo b) napoj� spu�t�n� program na sv�j v�stup, tak�e co ud�l�
CS��ek je�t� d�le zpracuje jin� program
M� osobn� se zd� b�t u�ite�n�j�� a), ale uvid� se �asem, co se bude
v�c pou��vat.
M��e se tak velice jednodu�e zpracov�vat nap��klad v�stup z r�zn�ch
vyhled�vac�ch program�, ani� by tento musel s�m o sob� b�t CGI skript,
CS��ek se postar� o ve�ker� hlavi�ky. Pokud bude takov� program
produkovat texty v �e�tin� s diakritikou, je lep�� pou��t ho jako
cs��ekfiltr i v p��pad�, �e by ud�l�n�
CGI skriptu se stejn�mi v�sledky nebylo p��li� obt��n�. P�ek�dov�vat
p�es (pravd�podobn�) CS��ek se mus� tak jako tak a u�et�� se
�as p�enosu a nov� kontaktov�n� vzd�len�ho http d�mona, co� �et��
jednak strojov� �as serveru a tak� (co� je d�le�it�) �as v�ech
potenci�ln�ch u�ivatel�.
Jak pou��vat cs��ekfiltry se m��ete do��st
v jin� ��sti tohoto dokumentu.
Verze 1.3 p�in�� dal�� dv� u�ite�n� drobnosti - je mo�no zjistit,
jak byl CS��ek nakonfigurov�n p�i kompilaci a tak� nab�z�
on-line help. To prvn� se vyp��e, pokud d�te CS��ku parametr
?csacek_report nebo ?csacek_info,
tedy cel� URL bude vypadat n�jak takto:
http://server/cgi-bin/toASCII?csacek_report. CS��ek
automaticky vygeneruje HTML str�nku s po�adovan�mi informacemi.
Aby vypsal help, mus� URL vypadat n�jak takto :
http://server/cgi-bin/toASCII?csacek_help. CS��ek
vygeneruje str�nku, popisuj�c� z�kladn� p��kazy, kter� v t�to
verzi CS��ku je mo�no pou��vat, spolu s kr�tk�m popisem,
co kter� d�l�. Na domovskou str�nku se dostanete, pokud CS��ku
podstr��te parametr ?csacek_homepage.
 
Zp�t
Seznam p��kaz�
Ka�d� p��kaz pro C-SaCzech je uzav�en do koment��e
mezi <!-- a -->, tedy nap�.
<!--BAR E LONG-->
Pro milovn�ky patologick�ch p��pad�:
- p��kazy mohou m�t v�c parametr�, na po�ad� nez�le��, v n�zvech
p��kaz� nez�le�� na velk�ch/mal�ch p�smenech
- jsou-li uvedeny vz�jemn� protikladn� volby, plat� posledn� uveden�
- platnost p��kazu za��n� na ��dku n�sleduj�c�m za ��dkem,
na kter�m je uveden
- na jednom ��dku se rozpozn� maxim�ln� jeden p��kaz
- volby u p��kazu maj� p�ednost p�ed standartn�m nastaven�m
- pokud je na ��dku n�jak� p��kaz, neopisuje se na v�stup
Seznam:
... a popis:
V n�sleduj�c�m popisu hranat� z�vorky ozna�uj� ��sti, kter� nemus�
(ale mohou) b�t zad�ny. U ka�d�ho p��kazu je uvedena
jeho syntax, jeden jednoduch� p��klad pou�it�, d�le
pak kr�tk� popis, co dan� p��kaz d�l� a pot� p��padn� p�ehled
voleb �i parametr�, kter� m��ete p��kazu zadat. U n�kter�ch je
uveden je�t� odkaz na dal��, podrobn�j�� p��klady u�it�.
- MYCHARSET
- Syntax:
<!--MYCHARSET=k�d-->
- P��klad pou�it�:
<!--MYCHARSET=ISO-8859-2-->
- ��k� CS��ku, �e n�sleduj�c� text je zaps�n v k�dov�n�
k�d.
K�dov�n� m��ete v dokumentu m�nit bez omezen�.
- Jako n�zvy k�d� lze pou��t ISO-8859-1, ISO-8859-2,
CP1250, KEYBCS2, CP852, KOI8-CS, MAC. P��padn� je mo�no
pou��t n�kter� z alias�, �pln� seznam je k nalezen� v souboru
cstools.c, kter� je sou��st� distribuce.
- BAR, BARDEF
- Syntax:
<!--BAR[DEF] [parametry]-->
- P��klad pou�it�:
<!--BAR SHORT NOWHICH SEP=" o "-->
- P��kaz BAR slou�� k automatick�mu vyps�n� li�ty
s nab�dkou k�dov�n�. V li�t� se objev� seznam k�d�, kter�
CS��ek zvl�d� a ka�d� z nich je odkaz na aktu�ln� str�nku,
p�evedenou do p��slu�n�ho k�du. Parametry nemus�te uv�st,
BAR bez parametr� vyp��e li�tu v takov�m tvaru,
jak je pr�v� nastaveno.
- BARDEF m� stejn� volby a parametry jako BAR,
s t�m rozd�lem, �e li�tu nevyp��e, pouze nastav� vnit�n�
prom�nn� CS��ku pro pozd�j�� pou�it� na str�nce.
- V�znam jednotliv�ch parametr�:
- ALWAYS - �ekne CS��ku, �e na konci dokumentu m� vypsat li�tu
s nab�dkou p�ek�dov�n�
- NOBAR - li�tu na konci dokumentu nevyp��e automaticky
- WHICH, WHICHCODE - p�ip�� do li�ty i odkaz na v�b�r
k�dov�n� pomoc� whichcode
- NOWHICH, NOWHICHCODE - odkaz na whichcode do li�ty
ned�vej
- LONG - chci pou��vat dlouh� jm�na typ� k�d�
- SHORT - chci pou��vat trojp�smenn� zkratky
- E - anglick� verze li�ty
- CZ - �esk� verze li�ty
- SEP - odd�lova� n�zv� k�d� v li�t�; pou��v� se ve tvaru
SEP="odd�lova�"; standartn� poml�ka pro
LONG a mezera pro SHORT
- NOTITLE - nebude vyps�na hlavi�ka (HEADBARTEXT)
- NOBACK - nebude vyps�n z�v�r (obsah TAILBARTEXT)
- DEFAULT - nastaven� parametr� li�ty do tvaru, kter�
byl definov�n p�i instalaci jako standardn�; zru�en�
ve�ker�ch zm�n proveden�ch p�edch�zej�c�mi p��kazy BAR
nebo BARDEF
Zde je n�kolik
dal��ch p��klad�,
pokud se u� tento dokument
filtruje p�es CS��ek, uvid�te tak� jak ona generovan� li�ta
vypad�.
- PART
- Syntax:
<!--PART [jm�no_��sti1 jm�no_��sti2 ...]-->
- P��klad pou�it�:
<!--PART ENG-->
- N�sleduj�c� ��st textu do v�skytu dal��ho p��kazu PART
je p�ed�na pouze pokud n�kter� jm�no ��sti odpov�d�
p��pon� CGI skriptu, kter�m se dokument filtruje;
nap��klad pokud je odkaz ve tvaru:
http://server/cgi-bin/toXXX.eng/cosi, p�ed�
se v�e v dokumentu /cosi mezi
<!--PART ENG--> a dal��m
p��kazem PART. Krom� ��st� uzav�en� mezi
p��kazy PART s odpov�daj�c�m parametrem se tak�
p�ed� v�e do prvn�ho v�skytu p��kazu PART.
Pokud jm�no ��sti nen� uvedeno, text za
<!--PART--> se p�ed�
na v�stup pouze pokud u filtruj�c�ho CGI skriptu nebyla uvedena
p��pona, tzn. odkaz vypadal n�jak takto:
http://server/cgi-bin/toXXX/cosi. Ve jm�n�
��sti nez�le�� na velk�ch/mal�ch p�smenech (MoJe
se vyhodnot� jako ekvivalentn� ��sti moje).
- V�znam jednotliv�ch parametr�:
- ALL - tato ��st bude vyps�na v�dy
Zde je uveden
mal� p��klad;
p��klad bude funk�n� pouze pokud ji� m�te nainstalovan� CS��ek
v anglo�esk� verzi nebo si prohl���te dom�c� str�nku.
- DOMAIN
- Syntax:
<!--DOMAIN ozna�en�_dom�ny_1 [ozna�en�_dom�ny2 ...]-->
- P��klad pou�it�:
<!--DOMAIN ics.muni.cz 147.251-->
- Syntaxe je podobn� jako u PART. ��sti mezi
jednotliv�mi p��kazy DOMAIN se vyp��� pouze tehdy, kdy�
vzd�len� u�ivatel p�istupuje z n�kter� ze zadan�ch dom�n.
V uveden�m p��klad� tehdy, pokud vzd�len� u�ivatel p�istupuje
ze stroje v dom�n� ics.muni.cz nebo s IP
adresou za��naj�c� na 147.251 (.muni.cz).
- NOCODE
- Syntax:
<!--NOCODE-->
- P��klad pou�it�:
<!--NOCODE-->
- Od ��dku na kter�m byl tento p��kaz se dokument nebude p�ek�dov�vat;
vyu�it� nap��klad v dokumentech v �ist�m ASCII (nap�. anglick�)
ke zrychlen� p�ekladu nebo v ��stech, kter� nechcete p�ek�dov�vat
z jak�hokoli jin�ho d�vodu. P��kazy PART a
DOMAIN se v takto nek�dovan�ch ��stech st�le rozezn�vaj�.
- CODE
- Syntax:
<!--CODE-->
- P��klad pou�it�:
<!--CODE-->
- Od v�skytu tohoto p��kazu se dokument bude op�t k�dovat; inverzn�
volba s NOCODE.
- #exec
- Syntax:
<!--#exec cmd="prog [parametry]"-->
- P��klad pou�it�:
<!--#exec cmd="moje.cgi -v -n 34"-->
- standartn� p��kaz SSI;
Cs��ek z �ist� praktick�ch d�vod� nepodporuje parametr cgi=
(vyvolalo by to dal�� dotaz na WWW server -> zbyte�n� z�t�
nav�c).
Vlo�� do dokumentu v�stup z programu "prog"
spu�t�n�ho
s parametry "parametry". "prog"
nesm� b�t absolutn� cesta a nesm� obsahovat ��st ../.
Na tento p��kaz je t�eba d�vat pozor, umo��uje u�ivatel�m
spou�t�t programy pod identifikac� u�ivatele stejnou jako
WWW server, to mimo jin� znamen�, �e takto
spu�t�n� program m� p��stup v�ude, kam m� p��stup lok�ln� WWW server.
- #include
- Syntax:
<!--#include file="soubor"-->
- P��klad pou�it�:
<!--#include file="vsuvka.txt"-->
- standartn� p��kaz SSI;
CS��ek nepodporuje parametr virtual="XX" z podobn�ch
d�vod� jako nepodporuje cgi= u #exec.
Vlo�� do dokumentu jin� dokument. soubor op�t nesm� b�t
absolutn� cesta ani nesm� obsahovat ../. Mus� se
jednat o exituj�c� soubor (pokud je to program, vlo��
se jeho text, nespust� se).
- #csacekfilter
- Syntax:
<!--#csacekfilter cmd="prog [parametry]" [align=after|before]-->
- P��klad pou�it�:
<!--#csacekfilter cmd="cgi/muj.cgi -f -o ghost" align=before-->
- CS��ekfiltrem m��e b�t kter�koli program, kter� �te ze standardn�ho
vstupu a p��e na standardn� v�stup. D�l� to, �e filtruje
bu� vstup nebo v�stup do/z CS��ku, viz tak�
podrobn�j�� popis.
- Tento p��kaz podle hodnoty parametru align
nainstaluje prog jako cs��ekfiltr bu� p�ed
(align=before) a nebo za (align=after) CS��ek.
Pokud voliteln� parametr nepou�ijete, je to jako byste dali
align=before. prog op�t nesm� b�t
absolutn� cesta ani nesm� obsahovat ../.
Nainstalov�n� filtru p�ed CS��ek je dvakr�t n�ro�n�j��
na syst�mov� zdroje ne� nainstalov�n� za, v�hledov� se
bude m�nit syntax vol�n�
a pravd�podobn� bude omezen po�et filtr� p�ed CS��kem na jeden.
Zp�t
Historie
C-SaCzech
vznikl b�hem dubna a za��tku kv�tna l�ta P�n� tis�c�ho dev�tist�ho
devades�t�ho �est�ho.
Verze ozna�en� X.YZ a X.Y_*{ALPHA|BETA|BETAZ} jsou v�vojov� nestabiln� verze.
Doporu�uji nepou��vat, leda v p��pad� krajn� nouze ;-)
V�voj
- verze 1.3 (srpen-listopad 1996)
-
- podpora SSI a shtml
- mo�nost v�ce defaultn�ch soubor� (tzn. soubor�, kter� se
poskytnou pokud se zad� jako po�adovan� dokument jm�no adres��e)
- u k�dovan�ch dokument� p�ed�v�n parametr "charset" u
Content-type
- podpora autorizace p��stupu
- zaveden� CS��ek filtr�
- optimalizov�ny n�roky na pam� - na mnoha m�stech odstran�ny
statick� buffery, nahrazeny pointry a dynamickou alokac�
- animovan� GIFy z�st�vaj� animovan� i po dokon�en� prvn� smy�ky
- zjednodu�ena struktura funkc�, opraveno mnoho drobn�ch chyb,
nejd�le�it�j�� asi spr�vn� p�enos obr�zk�, p�ed�v�n� spr�vn�ho statutu,
funguj�c� podpora metody POST a PUT,
zpracov�n� hlavi�ky If-Modified-Since, ud�l�no v�ce "blbuvzdorn�",
v�ude kde se m��e vyskytnout chyba je detekov�na a ohl�ena,
a mnoho dal��ho
- mo�nost zji�t�n� zakompilovan� konfigurace CS��ku (?csacek_report)
- on-line help (?csacek_help)
- verze 1.23 (za��tek �ervna 1996) - dost chybov�, doporu�uji kdy� tak jen vybrat opravenou
verzi cstools.h
-
- podpora skript� volan�ch metodou POST
- l�pe zachov�v� HTTP hlavi�ky
- opraveno chybn� p�ek�dov�v�n� n�kter�ch znak�
- opraven whichcode.sl
- verze 1.22 (konec kv�tna 1996)
-
- mo�nost nastaven� (t�m��) jak�hokoli tvaru automaticky generovan�
li�ty s nab�dkou k�dov�n� p��mo v dokumentu
- podpora v�cejazy�n�ch dokument� - mo�nost m�t v jednom
dokumentu v�c r�zn�ch ��st� a dynamicky vyb�rat, kter� zobrazit
- verze 1.21 (konec kv�tna 1996)
-
- sou��st� automaticky generovan� li�ty s nab�dkou k�dov�n�
m��e b�t i mo�nost p�epnout k�dov�n� pomoc� p�vodn�ho
whichcode.
- opraveno �patn� pou��v�n� metody FILE (koliduje s definic�
FILE ve stdio.h); n�zvy metod jsou nyn� op�t mal�mi
p�smeny
- verze 1.2 (konec kv�tna 1996)
-
- automatick� vlo�en� li�ty s nab�dkou k�dov�n�
(podrobnosti viz Instalace)
- k�dovac� tabulky roz���eny o v�t�inu ostatn�ch znak� s diakritikou (i nap�. a se st���kou apod.)
- opraven whichcode.src, aby vytvo�en� whichcode
byl zpracovateln� i bashem; podporovan� shelly
viz Instalace.
- verze 1.1 (kv�ten 1996)
-
- opraveno �patn� nahrazov�n� �et�zce __CHARSET__
p�i metod� http
- k�dovac� tabulky roz���eny o slovensk� znaky
- chybov� hl�ky jsou "syt�mov�j��" - v hlavi�ce vrac�
(po vzoru SaCzechu 2.1) i Status s platn�m k�dem.
- __CHARSET__ rozpozn�v�n i v HTML hlavi�k�ch p�i metod� http
(umo��uje zachov�n� k�du i v obr�zc�ch s klikou)
- lze p�ek�dovat i parametry, zadan� programu (obsah prom�nn�
QUERY_STRING)
- zdokonaleno rozhodov�n�, kter� metoda se m� pou��t p�i guess
tak, �e metoda http se pou�ije i tehdy, kdy�
po�adovan� URL obsahuje CGISUFFIX.
- verze 1.0 (kv�ten 1996)
-
- mo�nost z�sk�vat k�dovan� dokumenty prost�ednictv�m HTTP
- podpora HTTP hlavi�ek Last-Modified, Content-Size
a If-Modified-Since p�i zpracov�n� soubor�
- mo�nost opat�it konverzn� sadu p��ponou (nap�. .cgi) pokud
to syst�m vy�aduje
- p�i metod� HTTP nebo GUESS je volan�mu
skriptu p�ed�v�n i dotaz (QUERY_STRING)
- korektn� chov�n� p�i chybn� zadan�m URL (neexistuj�c� soubor)
- je mo�no pou��vat v�ce jmen k�d� (aliasy);
- sou��st� distribuce je which.src s p��klady k�d�
Zp�t
Zaj�mavosti a linky na str�nky o r�zn�ch konverzn�ch programech
a �e�tin� na WWW
Jen stru�n� (se�azeno v chronologick�m sledu, jak jsem se o nich dozv�d�l):
- WWWdia - ftp - program pro zm�nu k�dov�n� str�nek p�i p�enosu u�ivateli
- SaCzech - program pro zm�nu k�dov�n� str�nek p�i p�enosu u�ivateli
- OBO - program pro
udr�ov�n� dvou a v�ce jazy�n�ho dokumentu v jednom souboru
- kod - ftp -
program pro zm�nu k�dov�n� str�nek p�i p�enosu u�ivateli
�l�nky:
Tak� jsou nov� k dispozici FAQ t�kaj�c� se �e�tiny:
ale jeste se mi na tu adresu nepodarilo dostat (tento material
vytvoril Lukas Petrlik, [email protected]), nejake problemy se serverem
(odmita ftp, http a dokonce i finger :-(.
Zp�t