Licznik na stronie WWW
Jeśli ktoś chciałby umieścić sobie licznik na stronie
www
publikowanej na naszym serwerze to musi sobie wkleić taki
kod HTML do swojego pliku np. index.html :
<font face="Helvetica"
size="-1">
Strona została wyświetlona
<!--#exec cgi="/cgi-bin/robcount.pl" -->
razy od 17.04.2001 roku.
</font>
A jeśli ktoś chciałby mieć swój własny
licznik (przerobiony lub zupełnie inny) musi mieć podaną ścieżkę
dostępu do swojego skryptu z licznikiem np. jeśli skrypt
licznika robcount.pl jest w katalogu hal/public_html/cgi-bin
<h4>Jesteś <!--#exec cgi="/cgi-bin/hal/robcount.pl"
--> użytkownikiem, który tu zajrzał<br>od 03.07.2001</h4>
Ponadto wymagane jest jeszcze aby ten kod znajdował się nie
w pliku index.html lecz w pliku o nazwie index.shtml (to ważne -
bez tego licznik działać nie będzie).
Zerowanie licznika-plik robcount.txt
Wyzerować licznik możesz otwierając plik
/home/httpd/counter_misc/robcount.txt (pod warunkiem , że nie
masz przerobionego licznika do swoich potrzeb np. tak aby nie
liczył wejść autora strony , w tym wypadku plik robcount.txt
może być w innym miejscu np. hal/public_html/counter/robcount.txt
i można go samemu stworzyć) i zerując wartości w linijkach
odpowiedzialnych za swoje strony , na których masz licznik. UWAGA! plik robcount.txt musi mieć odpowiednie
atrybuty (zobacz pytanie 54 - obrazek atrybuty skryptu cgi) .
Linijki te wyglądają np. tak:
/~hal/homepage/index.shtml``97``xxx
/~hal/homepage/homepage.shtml``253``xxx
Możesz również skasować całe swoje linijki. Jak ich nie
będzie to skrypt
sam je utworzy automatycznie i zacznie liczyć od zera.
Skrypt licznika
Tak wygląda przerobiony skrypt licznika robcount.pl , tak
aby nie zliczał wejść autora strony (pod warunkiem oczywiście
, że ma stały adres IP) :
#!/usr/bin/perl
# declare the variables
$data = "/home/hal/public_html/counter/robcount.txt";
$digiturl = "http://www.local.pl/digits/digits2/";
$defaultdigit = "dg";
$defaultext = "gif";
$defaultfont = "arial";
$defaultcolour = "red";
@digitstart = ("dg", "bullet");
@digitext = ("gif", "gif");
@fonts = ("arial", "times", "kids",
"comic sans ms");
@colours = ("red", "green", "orange",
"blue");
$text = 0; # 0 -- graphic, 1 -- text
$rgraphic = 0; # 0 -- don't randomize graphics, 1 -- randomize
$formattext = 1; # 0 -- don't format text, 1 -- format
$rtextcolour = 0; # 0 -- don't randomize text color, 1 --
randomize
$rtextfont = 0; # 0 -- don't randomize font, 1 -- randomize
#########################################################################
# Don't change anything below here unless you know what you're
doing :) #
#########################################################################
$use_cgi = 1;
$page = "$ENV{'DOCUMENT_URI'}";
$found = 0;
$count = 1;
srand(time ^ $$);
print "Content-type: text/html\n\n";
open (FILE, "$data") || die "Error
opening file\n";
@lines = <FILE>;
close(FILE);
$sizelines = @lines;
open (FILE, ">$data") || die "Error
opening file\n";
for ($a = 0; $a <= $sizelines; $a++) {
($temppage, $tempcount, $nochop) = split(/``/,$lines[$a]);
if ("$temppage" eq "$page")
{
if ($ENV{'REMOTE_ADDR'} ne '192.168.1.5')
{
$tempcount ++;
}
$count = $tempcount;
$found = 1;
}
if ($temppage) {
print FILE "$temppage``$tempcount``xxx\n";
}
}
if ($found == 0) {
print FILE "$page``$count``xxx\n";
}
close (FILE);
if ($text == 1) {
if ($formattext == 1) {
if ($rtextfont == 1) {
$temp = rand(@fonts);
print "<font face=\"$fonts[$temp]\" ";
} else {
print "<font face=\"$defaultfont\" ";
}
if ($rtextcolour == 1) {
$temp = rand(@colours);
print "color=\"$colours[$temp]\">";
} else {
print "color=\"$defaultcolour\">";
}
print "$count</font>";
}
else {
print "$count";
}
} else {
$compare = 1;
$digits = 0;
while ($compare <= $count) {
$digits ++;
$compare = $compare * 10;
}
for ($a = $digits; $a > 0; $a--) {
$compare = 1;
for ($b = 1; $b < $a; $b++) {
$compare = $compare * 10;
}
if ($count < $compare) {
$d[$a-1] = 0;
}
else {
for ($c = 1; $c < 10; $c++) {
if ($count >= ($c * $compare) && $count < (($c+1) *
$compare)) {
$d[$a-1] = $c;
}
}
$count -= $d[$a-1] * $compare;
}
}
if ($rgraphic == 1) {
$temp = rand(@digitstart);
$defaultdigit = $digitstart[$temp];
$defaultext = $digitext[$temp];
}
for ($a = ($digits-1); $a >= 0; $a--) {
print "<img src=\"$digiturl$defaultdigit$d[$a]\.$defaultext\">";
}
}
Linijki wyróżnione czerwonym kolorem
:
1. ścieżka dostępu do pliku
robcount.txt (patrz punkt zerowanie licznika)
2.ścieżka dostepu do katalogów
z cyframi do licznika ; można ściągnąć inne i zmienić
katalog na swój
3.adres IP autora strony , którego
wejść licznik ma nie zliczać
Strona powstała dzięki moim
dociekaniom i pomocy naszego Administratora-Grzesia.
Dzięki Grześ !