| |
[ 07. February 2000]
- Svato_Straka
Server side includes (SSI) - 9. časť CGI
Určite sa už každý z vás stretol s problémom, keď potrebuje do stránky vložiť určité informácie, ako napr. dátum poslednej modifikácie súboru, CGI premenné, či použiť vo viacerých súboroch ten istý text a podobne.
Máte samozrejme možnosť napísať si pre vloženie požadovaných informácií potrebný skript alebo text, ktorý potrebujete mať vo viacerých súboroch do každého z nich napísať, no je tu ešte jedna možnosť, ako si tieto činnosti uľahčiť - SERVER SIDE INCLUDES (SSI).
SSI sú vlastne direktívy, pomocou ktorých môžete z HTML dokumentu spustiť ľubovoľný program či CGI skript a ich výstup poslať do daného dokumentu, alebo zobraziť určité dáta. Keď klient pristupuje k stránke, ktorá SSI obsahuje, je táto stránka pred zobrazením odovzdaná parseru, ktorý zabezpečí činnosti určené pomocou SSI a až potom je výstup odovzdaný klientovi.
Ako server zistí, že stránka na ktorú sa klient obrátil obsahuje SSI? Server automaticky neanalyzuje všetky súbory, ale len tie, ktoré sú ukončené určitou príponou nastavenou v konfigurácii servra (štandardne to býva .shtml ).
SSI má samozrejme aj svoje nevýhody. V prvom rade je to samozrejme záťaž systému vznikajúca analyzovaním súborov pred odoslaním klientovi. Ďalším rizikom je ohrozenie bezpečnosti - pokým užívateľom, ktorých stránky na svojom serveri hosťujete nedôverujete (správnu dávku paranoje by mal mať každý administrátor), môžete sa dostať do veľkých problémov vďaka tomu, že v niektorej zo stránok môže byť direktíva sprístupňujúca citlivé údaje vášho systému.
V nasledujúcej tabuľke sú uvedené SSI direktívy, ktoré máte k dispozícii pre vaše stránky:
echo
|
var
|
Vloží hodnotu premennej prostredia alebo SSI premennej
|
include
|
Vloží obsah súboru do aktuálneho dokumentu
|
file
|
Relatívna cesta k súboru vzhľadom k akt. adresáru
|
virtual
|
Virtuálna cesta k dokumentu na serveri
|
fsize
|
file
|
Vloží veľkosť zadaného súboru
|
flastmod
|
file
|
Vloží dátum a čas poslednej modifikácie súboru
|
exec
|
Spustí program a jeho výstup presmeruje do akt. dokumentu
|
cmd
|
Spustí ľubovoľnú aplikáciu na lokálnom počítači
|
cgi
|
Spustí CGI skript
|
config
|
Nastaví rôzne aspekty SSI
|
errmsg
|
Zmení defaultnú chybovú správu
|
sizefmt
|
Určí formát pre veľkosť súboru
|
timefmt
|
Určí formát pre zobrazenie dátumu a času
|
Ako tieto direktívy do svojho súboru začleníte? Možno ste sa už niekedy stretli s tagom, ktorý vyzerá ako komentár, ale obsahuje aj znak <!--Takáto direktíva by do aktuálneho dokumentu vložila obsah súboru adresa.txt , ktroý je umiestnený v tom istom adresári ako náš dokument.
Myslím že vysvetľovať väčšinu z direktív uvedných v tabuľke nie je potrebné, pozastavím sa len pri dvoch: echo a config .
Direktíva echo vloží do dokumentu premennú prostedia (o tých sme si hovorili v prvej časti tohto seriálu) alebo premennú SSI. Príkladom pre vloženie premennej prostredia by mohlo byť napr. vloženie IP adresy, z ktorej je stránka volaná:
<!--O premenných SSI však zatiaľ reč nebola. Aké sú premenné SSI? Nájdete ich v nasledujúcej tabulke:
DOCUMENT_NAME
|
Názov aktuálneho súboru
|
DOCUMENT_URI
|
Virtuálna cesta k súboru
|
QUERY_STRING_UNESCAPED
|
Nekódovaný reťazec dotazu so všetkými metaznakmi shellu
|
DATE_LOCAL
|
Aktuálny dátum a čas v miestnom časovom pásme
|
DATE_GMT
|
Aktuálny dátum a čas GMT
|
LAST_MODIFIED
|
Dátum a čas poslednej modifikácie aktuálneho súboru
|
Direktíva config vám umožňuje nastaviť si niektoré výstupy SSI.
Môžete si zmeniť napr. štandardné chybové hlásenie, ktoré obdržíte, keď sa pokúsite pomocou SSI vložiť do dokumentu neexistujúci súbor. Toto hlásenie je:
[an error occurred while processing this directive]
Pomocou direktívy config ho môžete zmeniť nasledujúcim spôsobom:
<!--
Rovnako máte možnosť zmeniť zmeniť si formát, v akom je uvádzaná veľkosť súboru. Pomocou reťazca abbrev určíte, že veľkosť súboru sa zaokrúhli na kilobajt hore, pomocou bytes určíte, že veľkosť súboru sa má zobraziť v bajtoch.
Ak si chcete zmeniť formát výpisu dátumu a času, dosiahnete to rvnako pomocou direktívy config. Nasledujúci príklad zobrazí dátum a čas poslednej zmeny aktuálneho súboru podľa našich zvyklostí:
<!--Posledná zmena dokumentu: <!--
Nasleduje tabulka v ktorej môžete nájsť reťazce pre konfiguráciu formátu dátumu a času:
Formát |
Hodnota |
Príklad |
%a |
Deň ktorým začína týždeň |
Sun |
%A |
Deň v týždni |
Sunday |
%b |
Mesiac ktorým začína rok |
Jan |
%B |
Názov mesiaca |
January |
%d |
Dátum (dd) |
03 |
%D |
Dátum vo formáte %m/%d/%y |
03/15/98 |
%e |
Dátum (d) |
3 |
%H |
24-hodinový formát času |
16 |
%I |
12-hodinový formát času |
4 |
%j |
Číslo dňa v roku |
259 |
%m |
Číslo mesiaca (mm) |
09 |
%M |
Minúty |
14 |
%p |
AM|PM |
PM |
%r |
Čas vo formáte %I:%M:%S %p |
04:15:22 PM |
%S |
Sekundy |
00 |
%T |
Čas vo formáte %H:%M:%S |
23:12:54 |
%U |
Číslo týždňa v roku |
16 |
%w |
Číslo dňa v týždni |
7 |
%y |
Číslo roku v storočí |
98 |
%Y |
Rok |
1998 |
%Z |
Časové pásmo |
CEST |
Nabudúce sa pozrieme konečne aj na Perl, ukážeme si tvorbu jednoduchého počítadla pre vaše stránky.
|
|
| |
|
"Server side includes (SSI) - 9. časť CGI" | Login / vytvor konto | 0 Komentárov |
|
Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok. |
|