E nter.net  


Liczniki odwiedzin stron WWW
Cezary G│owi±ski


P oruszaj▒c siΩ po sieci WWW czasami mo┐na siΩ natkn▒µ na strony wyposa┐one w licznik odwiedzin. Zwykle objawia siΩ to komunikatem w postaci "Ta strona zosta│a odwiedzona 3457 razy". My╢limy sobie, ┐e jest to fajna rzecz i sami chcemy umie╢ciµ co╢ takiego na swojej stronie. Zagl▒damy zatem do kodu ╝r≤d│owego i tu przykra niespodzianka, gdy┐ widaµ jedynie znacznik wstawienia obrazka graficznego <IMG>. Zatem, jak sobie z tym poradziµ.

W jΩzyku HTML nie ma bezpo╢rednio ┐adnego znacznika, kt≤ry pozwala│by utworzyµ na stronie generator jej odwiedzin. Niemniej jednak wymy╢lono kilka sposob≤w realizacji takiego mechanizmu. Oczywi╢cie sposoby te zale┐▒ od serwera WWW, na jakim umieszczamy nasze strony. S▒ zatem sposoby bardziej i mniej uniwersalne. Zaczniemy od podstawowego sposobu realizacji w postaci skryptu CGI.

Skrypty CGI


Jest to bardzo rozpowszechniony i najbardziej uniwersalny spos≤b realizacji mechanizm≤w licznika odwiedzin stron WWW. Idea tego rozwi▒zania jest prosta. Ot≤┐ w miejscu, w kt≤rym chcemy umie╢ciµ licznik umieszczamy znacznik <IMG> z parametrem SRC. I tu jest sztuczka. Zamiast podawaµ adres obrazka graficznego, podajemy adres do skryptu lub programu CGI.
Licznik
Tu widzimy ile os≤b przeczyta│o ten tekst
Odwiedzi│e╢ tΩ stronΩ <IMG SRC="/cgi-bin/licznik.exe"> razy. W tym przypadku program CGI pod nazw▒ licznik.exe tworzy obrazek w postaci GIF-a. Obrazek ten jest nastΩpnie wy╢wietlany za pomoc▒ znacznika <IMG>. Przewa┐nie CGI jest pisane jako program w jΩzyku C lub skrypt w Perlu lub z wykorzystaniem polece± pow│oki w przypadku system≤w unixowych. Program CGI mo┐e tworzyµ obrazek GIF na dwa sposoby, albo generuje go od podstaw, albo sk│ada z gotowych wzorcowych GIF-≤w dla pojedynczych cyfr. Ten drugi spos≤b jest szybszy. Aby program potrafi│ wygenerowaµ prawid│ow▒ liczbΩ odwiedzin, musi dodatkowo zliczaµ wszystkie otwarcia strony (a zatem swoje uruchomienia). Jest to realizowane z pomoc▒ pliku zewnΩtrznego, w kt≤rym zapamiΩtana jest aktualna liczba odwo│a± do strony. Co siΩ dzieje gdy, kto╢ odwiedza nasz▒ stronΩ. W≤wczas uruchamiany jest program CGI, sprawdza on w pliku aktualn▒ liczbΩ odwiedzin, zwiΩksza j▒ o jeden i ponownie zapisuje do pliku. Na podstawie wygenerowanej cyfry tworzy plik GIF, kt≤rego nazwa jest z kolei wstawiana do parametru SRC, co powoduje wy╢wietlenie obrazka przez przegl▒darkΩ. »eby w pe│ni korzystaµ z tego sposobu, trzeba mieµ dostΩp do serwera WWW. Program CGI umieszcza siΩ w≤wczas w podkatalogu serwera, zwykle jest to /cgi-bin. Tak▒ realizacjΩ licznika mo┐na zastosowaµ m.in. dla popularnego unixowego serwera Apache.
Je╢li nie mamy dostΩpu do w│asnego serwera, aby umie╢ciµ na nim sw≤j skrypt, mo┐na skorzystaµ z us│ug oferowanych przez inne serwery. Ot≤┐ s▒ firmy i organizacje, kt≤re maj▒ ju┐ napisany skrypt i pozwalaj▒ siΩ do niego odwo│ywaµ innym u┐ytkownikom Internetu w celu obs│ugi licznik≤w na ich stronach WWW. Jednak w takim przypadku trzeba siΩ zarejestrowaµ. Generalnie s▒ dwa rodzaje rejestracji bezp│atna oraz p│atna. W tym drugim przypadku, aby ich program generowa│ dla nas obrazek z liczb▒ odwiedzin, trzeba wykupiµ abonament na okre╢lony czas. Opr≤cz tego w sieci mo┐na czasem znale╝µ gotowe programy lub skrypty napisane przez innych autor≤w. W takim przypadku wystarczy ╢ci▒gn▒µ kod ╝r≤d│owy takiego skryptu lub programu, a nastΩpnie skompilowaµ go (dotyczy to program≤w) i zainstalowaµ na serwerze WWW.

SSI


Idea realizacji licznika w technice SSI jest podobna jak w CGI. Polega ona na wykorzystaniu polecenia EXEC. Powoduje ono uruchomienie i wykonanie odpowiedniego programu na serwerze, kt≤rego wynik zostanie wstawiony w miejsce polecenia SSI. Najprostsza realizacja ma postaµ: Odwiedzi│e╢ tΩ stronΩ <!->EXEC CMD="licznik2.exe"-> razy. W powy┐szym poleceniu licznik2.exe oznacza, tak jak poprzednio, program, kt≤ry wygeneruje liczbΩ odwo│a± do danej strony. Jednak w tym przypadku mamy mo┐liwo╢µ wstawienia liczby wygenerowanej w postaci zwyk│ego tekstu, a nie obrazka graficznego.
Jedyn▒ niedogodno╢ci▒ tej realizacji licznika jest potrzeba dostΩpu do w│asnego serwera WWW, kt≤ry obs│uguje mechanizm wstawek SSI. Poniewa┐ obecnie polecenia SSI s▒ zaimplementowane na wiΩkszo╢ci serwer≤w, wiΩc mo┐na z nich praktycznie swobodnie korzystaµ. Pojawia siΩ jednak problem, gdy┐ w rzeczywisto╢ci r≤┐nie s▒ one zrealizowane dla r≤┐nych system≤w. Przyk│adem mo┐e byµ serwer Web Server firmy Novell, kt≤ry ma rozszerzon▒ implementacjΩ SSI. UdostΩpnia on polecenie COUNT realizuj▒ce licznik odwiedzin.
Odwiedzi│e╢ tΩ stronΩ <!->COUNT file="liczba.cnt"-> razy. Plik liczba.cnt zawiera liczbΩ dotychczasowych odwiedzin strony. Przy ka┐dorazowym otwarciu strony liczba w pliku jest zwiΩkszana o 1. Je╢li plik o tej nazwie nie istnieje, to zostanie on za│o┐ony przez serwer obs│uguj▒cy WWW.

Webbot


Realizacja licznika z wykorzystaniem tzw. webbot≤w jest mo┐liwa jedynie na serwerze Internet Information Server 3.0 firmy Microsoft. Nie jest to zatem spos≤b uniwersalny. Warto jest jednak o nim wspomnieµ, gdy┐ │atwo pozwala zrealizowaµ licznik. W tym celu wykorzystuje siΩ edytor FrontPage 98, kt≤ry ma specjaln▒ opcjΩ do wstawiania i konfigurowania licznika (opcja Insert-Active Elements-Hit Counter). W tym przypadku licznik jest gotowym komponentem, kt≤rego realizacjΩ wspomagaj▒ mechanizmy wbudowane w serwer IIS. Przyk│adowo wstawienie licznika na stronie ma nastΩpuj▒c▒ postaµ:
Odwiedzi│e╢ tΩ stronΩ <!-webbot bot="HitCounter" i-image="0" i-digits="0" b-reset="FALSE" preview="&lt; strong&gt;[Hit Counter]&lt;/strong&gt;" u-custom i-resetvalue="0" -> razy.
Wstawiaj▒c licznik mo┐na okre╢liµ styl wy╢wietlanych cyfr. Do wyboru jest piΩµ gotowych propozycji. Dodatkowo u┐ytkownik mo┐e wykorzystaµ w│asny zaprojektowany w tym celu plik GIF zawieraj▒cy cyfry od zera do dziewiΩciu. Licznik mo┐na wyzerowaµ lub zainicjowaµ wybran▒ warto╢ci▒ liczbow▒ oraz okre╢liµ czy ma byµ zawsze wy╢wietlana sta│a liczba cyfr. Jak widaµ jest to rozszerzenie w stosunku do standardu HTML, a zatem umieszczone w komentarzu. W przypadku umieszczenia takiej strony na innym serwerze ni┐ IIS licznik nie bΩdzie w og≤le widoczny.

Mo┐na jeszcze inaczej


Powy┐szy przegl▒d realizacji licznik≤w nie wyczerpuje wszystkich mo┐liwo╢ci (np. jest jeszcze mechanizm ciasteczek ang. cookies lub aplety Javy). Przedstawi│em jedynie te najczΩ╢ciej wykorzystywane. Mo┐na przy tej okazji wspomnieµ, ┐e opr≤cz licznik≤w odwiedzin stron WWW mo┐na tworzyµ indywidualne liczniki odwiedzin przez okre╢lonego u┐ytkownika lub wrΩcz zbieraµ statystyki, np. jakiego oprogramowania u┐ywaj▒ u┐ytkownicy odwiedzaj▒cy dan▒ stronΩ.

Data ostatniej modyfikacji strony WWW


Wykorzystuj▒c mechanizm SSI mo┐na na stronie umie╢ciµ automatycznie generowany napis m≤wi▒cy, kiedy przegl▒dana strona by│a ostatnio modyfikowana. Jest to o tyle proste, ┐e nie trzeba stosowaµ w tym celu specjalnych sztuczek, gdy┐ odpowiednie polecenie FLASTMOD jest w ka┐dej implementacji SSI. Aby umie╢ciµ datΩ modyfikacji nale┐y umie╢ciµ nastΩpuj▒cy fragment kodu ╝r≤d│owego:
Ostatnia modyfikacja nast▒pi│a <!->FLASTMOD file="index.shtml"-->.
Parametr FILE okre╢la nazwΩ pliku, kt≤ry zawiera kod ╝r≤d│owy strony WWW.

Konfiguracja przyk│adowego licznika


W Internecie mo┐na znale╝µ wiele bezp│atnych serwis≤w udostΩpniaj▒cych liczniki. Jeden z nich mo┐na spotkaµ pod adresem toolbox.usa1.com. Aby umie╢ciµ oferowany tam licznik odwiedzin to w kodzie ╝r≤d│owym nale┐y umie╢ciµ znacznik z nastΩpuj▒cymi argumentami (ich kolejno╢µ jest wa┐na, za╢ nawiasy kwadratowe oznaczaj▒, ┐e jest to argument opcjonalny i nie musi siΩ pojawiµ w wywo│aniu):

<img src="http://toolbox.usa1.com/scripts/counter.exe?[width=X&] link=A_PAGE[&style=A_STYLE]">

gdzie:
width=X (opcjonalny) okre╢la szeroko╢µ licznika w liczbie wy╢wietlanych cyfr. Domy╢ln▒ warto╢ci▒ jest 0, co oznacza ┐e bΩdzie wy╢wietlanych tyle cyfr, ile zawiera wygenerowana liczba (bez poprzedzaj▒cych j▒ zer). Maksymaln▒ warto╢ci▒ jest 10;

link=A_PAGE (obowi▒zkowy) unikalny identyfikator strony, na kt≤rej znajduje siΩ licznik (nazwa nie mo┐e zawieraµ w ╢rodku spacji). Identyfikator wykorzystywany jest do rozr≤┐niania stron. Poniewa┐ omawiany licznik jest og≤lnodostΩpny, to identyfikator powinien mieµ d│ug▒ i wymy╢ln▒ nazwΩ nie do powt≤rzenia przez innego u┐ytkownika, gdy┐ w przeciwnym wypadku wyst▒pi konflikt nazw i mechanizm zliczania bΩdzie dzia│a│ niepoprawnie;

style=A_STYLE (opcjonalny) okre╢la styl generowanych cyfr (domy╢ln▒ warto╢ci▒ jest "a", za╢ w og≤le dostΩpnych jest ich piΩtna╢cie od "a" do "o").

Liczniki mog▒ sobie zainstalowaµ tak┐e osoby korzystaj▒ce z darmowych kont na Polboksie lub Optimusie. Konkretne informacje na temat znale╝µ mo┐na odpowiednio pod adresami: www.polbox.com.pl/counter.html oraz friko.onet.pl/pomoc.

Wady licznik≤w odwiedzin


Opr≤cz zalet liczniki maj▒ te┐ swoje wady. Zdarza siΩ czΩsto, ┐e nie odzwierciedlaj▒ one poprawnie wszystkich odwiedzin naszej strony. Mo┐e siΩ to zdarzyµ w kilku przypadkach: je╢li strona jest przegl▒dana przez przegl▒darkΩ nie obs│uguj▒c▒ grafiki, w przegl▒darce wy│▒czona jest opcja automatycznego │adowania grafiki, nast▒pi│o wci╢niΩcie przycisku "STOP" przed za│adowaniem licznika. Jednak pomimo tych wad s▒ one odzwierciedleniem zainteresowania nasz▒ stron▒ przez innych u┐ytkownik≤w Internetu.

Jak utworzyµ w│asny plik z cyframi?


Programy generuj▒ce kolejne odwo│ania do strony WWW pozwalaj▒ czasem na wykorzystanie GIF-≤w u┐ytkownika. Jak utworzyµ taki plik graficzny, aby by│ do wykorzystania w liczniku? Generalnie zasada jest taka, ┐e plik z cyframi jest jeden. W nim znajduj▒ siΩ wszystkie znaki cyfr wykorzystywane przez licznik. Jest ich dziesiΩµ, w kolejno╢ci od zera do dziewiΩciu (ewentualnie jeszcze znaki dodatkowe). Trzeba zatem najpierw utworzyµ obrazki poszczeg≤lnych cyfr. NastΩpnie mo┐na wykorzystaµ program mkstrip (dostΩpny w Internecie w postaci ╝r≤d│owej do kompilacji).
Polecenie:
mkstrip zero.gif jeden.gif dwa.gif . . . dziewiec.gif > cyfry.gif tworzy plik cyfry.gif, kt≤ry mo┐e byµ wykorzystany przez program generuj▒cy licznik. Opr≤cz po│▒czenia pojedynczych obraz≤w cyfr w jednym pliku program mkstrip umieszcza odpowiedni komentarz w formacie GIF m≤wi▒cy o organizacji pliku. Informacje dotycz▒ liczby po│▒czonych znak≤w oraz ich rozmiarach. Dane te s▒ potem czytane i wykorzystywane przez skrypt CGI. Du┐▒ liczbΩ gotowych GIF-≤w z cyframi mo┐na znale╝µ pod adresem www.digitmania.holowww.com.

(c) Copyright LUPUS