Wstecz
|
Dalej
|
Wstawki takie, umieszczane w pliku HTML, mają postać:
<!--#polecenie parametry -->
Z punktu widzenia języka HTML stanowią one zatem komentarz, co
zabezpiecza przed ich wyświetleniem na ekranie w sytuacji, gdyby z
jakiegoś powodu nie zostały one zinterpretowane przez serwer i
wysłane do przeglądarki użytkownika. Podobnie bowiem jak w przypadku
samych skryptów CGI, także i możliwość korzystania z SSI może być
zablokowana w konfiguracji serwera i wymagać odblokowania przez
administratora (są to dwie niezależne opcje w konfiguracji). Ponadto
musimy poinformować serwer, które pliki zawierają wstawki -
analizowanie każdego pliku HTML wpłynęłoby bardzo źle na wydajność
serwera. Stąd też pliki zawierające wstawki SSI opatruje się zwykle
innym rozszerzeniem nazwy niż zwykłe pliki HTML - standardowo jest to
rozszerzenie .shtml (oczywiście także i to jest zależne od
administratora). Każdy plik z takim rozszerzeniem jest przed jego
wysłaniem do przeglądarki przeglądany przez serwer i wszystkie
wstawki zamieniane są na teksty odpowiednie do użytego polecenia (por.
tabela 3). Użytkownik otrzymuje już "czystą" stronę HTML bez żadnych
śladów wstawek.Polecenia dostępne we wstawkach SSI przedstawione zostały w tabeli 3. Spośród nich dwa najistotniejsze stanowią #include i #exec. Polecenie #include pozwala wstawiać w treść strony zawartość innych plików tekstowych - zawierających czysty tekst lub kod HTML (ale nie pełny dokument HTML, z sekcjami <HEAD> i <BODY>, lecz fragment, który z punktu widzenia składni HTML-a może być wstawiony w większą całość). Może ono być bardzo przydatne w sytuacji, gdy np. na naszych stronach WWW powtarzają się pewne stałe elementy - takie jak nagłówki, menu nawigacyjne i inne. Możemy wówczas każdy taki stały fragment umieścić w odrębnym pliku i włączać ten plik poleceniem #include w każdą stronę, która ma go zawierać. Podejście takie bardzo ułatwia zarządzanie dużym serwisem WWW - wystarczy np. zmienić zawartość jednego włączanego pliku, aby automatycznie zmienił się wygląd wszystkich stron w serwisie.
Z uwagi na temat niniejszego poradnika najbardziej interesuje nas włączanie w treść strony fragmentów dynamicznie generowanych przez skrypty CGI. W starszych wersjach serwerów WWW trzeba było używać do tego celu odrębnego polecenia #exec. W większości nowoczesnych serwerów można to robić również poleceniem #include z parametrem virtual=, tak więc polecenie #exec stało się mniej potrzebne.
Spróbujmy zatem zrealizować wypisywanie aktualnego czasu serwera z wykorzystaniem mechanizmu SSI. Tworzymy stronę (pamiętajmy, aby nadać jej rozszerzenie .shtml, lub inne wymagane na naszym serwerze dla plików z wstawkami SSI) o następującej treści:
<html>
<head><title>Moja strona</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
</head>
<body>
<h1 align="center">Witam Cię na mojej stronie!</h1>
<b>Dzisiaj jest <!--#exec cgi="zegar.cgi" -->.</b><p>
....
.... (dalsza część strony)
....
</body>
</html>
oraz skrypt zegar.cgi, będący uproszczoną wersją skryptu z
poprzedniego rozdziału:
#!/usr/bin/perl
@miesiace = ("stycznia", "lutego", "marca", "kwietnia", "maja",
"czerwca", "lipca", "sierpnia", "września",
"października", "listopada", "grudnia");
@dni_tyg = ("niedziela", "poniedziałek", "wtorek", "środa",
"czwartek", "piątek", "sobota");
print "Content-type: text/plain\n\n";
($sek,$min,$godz,$dzien,$mies,$rok,$dztyg) = localtime;
print "$dni_tyg[$dztyg], $dzien $miesiace[$mies] ";
print 1900+$rok,", godzina $godz:$min:$sek";
Zwróćmy uwagę, że typ danych dostarczanych przez skrypt został tu
zmieniony na text/plain i usunięto informację o standardzie kodowania
polskich liter. Nie ma to większego znaczenia, gdyż w przypadku
dokumentu włączanego w treść strony przez SSI serwer i tak będzie
określał typ danych na podstawie dokumentu nadrzędnego, a nie
wstawki. Usunięto też wypisywanie całego kodu HTML strony - pozostała
jedynie sama informacja o aktualnym czasie, nadająca się do
wstawienia w dowolnym miejscu w treść strony. Skrypt ten uruchomiony
z wiersza poleceń systemu operacyjnego wypisałby na swoje
standardowe wyjście następujący wynik:
Content/type: text/plain
czwartek, 24 sierpnia 2000, godzina 17:03:24
natomiast włączony w treść strony przedstawionej powyżej da nam
rezultat jak na rys.5.
Wstecz
|
Dalej
|
Jarosław Rafa 2000.
Tekst udostępniony na licencji Creative Commons (uznanie autorstwa -
użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co
możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości
licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające
poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.
Wersja HTML opracowana 11.10.2000.
Powrót do spisu treści
|
Statystyka
|