Zugriffszähler
Frank
- perl
0 kaepten0 Frank0 Michael Schröpl0 Reiner0 Michael Schröpl0 Reiner0 Frank0 Michael Schröpl
0 Steffen D.
0 K@rl
Hallo zusammen !
Ich möchte auf meiner Homepage gern einen Gästezähler einbauen, den ich mit Perl programmieren möchte. Das Problem ist, daß ich nicht weiß wie ich die generierte Zahl in meine html-Startseite importiere.
Eine Möglichkeit wäre die ganze Seite durch eine Perl-Datei generieren zu lassen. Das möchte ich aber nicht. Ich möchte daß die Seite eine "normale" *.htm Seite ist, und an einer Stelle soll die aktuelle Besucherzahl stehen und die soll eben von einem PERL-Skript generiert worden sein:und zwar als Text und nicht als Grafik, wie bei den herkömmlichen Zugriffszählern. Kann mir jemand auf die Sprünge helfen ?
Vielen Dank
Frank
(oh, das reimt sich 8-) )
Hi Frank
Das funktioniert mit SSI. Du hast dann in Deiner "normalen" HTML Seite an der Stelle wo Du die Textausgabe willst einen Befehls-Aufruf Deines Scriptes.
Irgendwie in der Art:
<!--#exec cgi="/cgi-bin/counter.pl"-->
Dann musst Du aber Dein HTML Dokument mit der Endung *.shtm, oder *.shtml speichern, ansonsten funktioniert der Aufruf nicht.
Selbstverständlich gäbe es auch bereits einige Text-Counter frei erhältlich und Du müsstest Dir nicht die Mühe machen einen selbst zu programmieren!
http://www.worldwidemart.com/scripts/
cheers
kaepten
Danke für die Hilfe !
Ich weiß, ich kann mir auch n Counter woanders "bestellen", aber ich machs lieber selbst, wo ich doch gerade dabei bin mir Perl ein bisschen beizubringen ! Danke also nochmals !
Frank
http://www.frankswelt.de
Hi Frank
Das funktioniert mit SSI. Du hast dann in Deiner "normalen" HTML Seite an der Stelle wo Du die Textausgabe willst einen Befehls-Aufruf Deines Scriptes.
Irgendwie in der Art:
<!--#exec cgi="/cgi-bin/counter.pl"-->
Dann musst Du aber Dein HTML Dokument mit der Endung *.shtm, oder *.shtml speichern, ansonsten funktioniert der Aufruf nicht.
Selbstverständlich gäbe es auch bereits einige Text-Counter frei erhältlich und Du müsstest Dir nicht die Mühe machen einen selbst zu programmieren!
http://www.worldwidemart.com/scripts/
cheers
kaepten
Danke für die Hilfe !
Ich weiß, ich kann mir auch n Counter woanders "bestellen", aber ich machs lieber selbst, wo ich doch gerade dabei bin mir Perl ein bisschen beizubringen ! Danke also nochmals !
Viel Spaß beim Synchronisieren paralleler Schreibzugriffe - ich halte einen (funktionierenden) Zähler für keine Kleinigkeit und für ein ziemlich anspruchsvolles Erstlingsprojekt in Perl. Bedenke, daß daran auch das Posting-Skript unseres Forums krankt ...
Danke für die Hilfe !
Ich weiß, ich kann mir auch n Counter woanders "bestellen", aber ich machs lieber selbst, wo ich doch gerade dabei bin mir Perl ein bisschen beizubringen ! Danke also nochmals !Viel Spaß beim Synchronisieren paralleler Schreibzugriffe - ich halte einen (funktionierenden) Zähler für keine Kleinigkeit und für ein ziemlich anspruchsvolles Erstlingsprojekt in Perl. Bedenke, daß daran auch das Posting-Skript unseres Forums krankt ...
Müßte es nicht! Dafür gibt es flock.
Oder noch besser, eine selbstentwickelte Version, die gleichzeitiges Speichern verhindert (kurze Schleife).
Bei einem Zähler ist sowas aber nicht unbedingt empfehlenswert!
Reiner
Müßte es nicht! Dafür gibt es flock.
Oder noch besser, eine selbstentwickelte Version, die gleichzeitiges Speichern verhindert (kurze Schleife).
Eben genau das funktioniert nicht ohne unteilbaren Semaphor-Befehl.
Bei einem Zähler ist sowas aber nicht unbedingt empfehlenswert!
Willst Du ihn lieber ruiniert haben, wenn zufällig mal zwei Leute gleichzeitig reinschreiben? Dann sind die Erkenntnisse von Monaten weg.
Hallo Michael,
Müßte es nicht! Dafür gibt es flock.
Oder noch besser, eine selbstentwickelte Version, die gleichzeitiges Speichern verhindert (kurze Schleife).Eben genau das funktioniert nicht ohne unteilbaren Semaphor-Befehl.
Erläuter das bitte mal!
Bei einem Zähler ist sowas aber nicht unbedingt empfehlenswert!
Willst Du ihn lieber ruiniert haben, wenn zufällig mal zwei Leute gleichzeitig reinschreiben? Dann sind die Erkenntnisse von Monaten weg.
Nein! Ich meinte, man macht auch ein Lock, aber wartet nicht, falls gelockt ist, damit kein Zeitverzug stattfindet. Zähler sind Statistik, es ist im Grunde egal, ob man 100% der User bekommt (geht wegen Proxy-Problematik sowieso kaum).
Reiner
Hm, klingt ja heftig ! Vielleicht sollte ich mir doch einen Counter downloaden. Von dem was Ihr hier gerade erzählt habt, habe ich circa nichts verstanden 8-(
Naja, wenigstens mein Guestbook habe ich selbst !
hinbekommen !
So long,
Frank
Hallo Michael,
Müßte es nicht! Dafür gibt es flock.
Oder noch besser, eine selbstentwickelte Version, die gleichzeitiges Speichern verhindert (kurze Schleife).Eben genau das funktioniert nicht ohne unteilbaren Semaphor-Befehl.
Erläuter das bitte mal!
Bei einem Zähler ist sowas aber nicht unbedingt empfehlenswert!
Willst Du ihn lieber ruiniert haben, wenn zufällig mal zwei Leute gleichzeitig reinschreiben? Dann sind die Erkenntnisse von Monaten weg.
Nein! Ich meinte, man macht auch ein Lock, aber wartet nicht, falls gelockt ist, damit kein Zeitverzug stattfindet. Zähler sind Statistik, es ist im Grunde egal, ob man 100% der User bekommt (geht wegen Proxy-Problematik sowieso kaum).
Reiner
Eben genau das funktioniert nicht ohne unteilbaren Semaphor-Befehl.
Erläuter das bitte mal!
<../../sfarchiv/1999_4/t07970.htm#a40113>,
<../../sfarchiv/1999_2/t04506.htm#a22328>
Moin, moin,
ein Möglichkeit zur Lösung des Problems:
ein primitiver Text-Counter ohne SSI
drei Zeilen für's HTML-Dokument:
<body ....>
<script language="JavaScript" src="counter.js" type="text/javascript">
</script>
...
<img src="http://www.server.com/cgi-bin/counter.cgi" border="0" heiht="1" width="1">
#####################################################
#!/usr/bin/perl
$LOCK_EX = 2;
$LOCK_UN = 8;
$counter_js = "/home/www/index/counter.js";
open(COUNT,"$counter_js");
$counter = <COUNT>;
close (COUNT);
open(COUNT_JS,">$counter_js");
flock (COUNT_JS, $LOCK_EX) or die ("$!: can‚t get lock\n");
$counter =~ s/[^0-9]//g;
$counter++;
print COUNT_JS "document.write("$counter");";
flock (COUNT_JS, $LOCK_UN);
close (COUNT_JS);
print "<img src="../icons/null.gif" border=0>";
den Wert der Variablen $counter_neu könnte man auch splitten und die einzelnen Ziffern durch IMG-Tags ersetzen, so würde aus dem primitiven Textcounter ein primitiver Grafikcounter
mögliche Irritationen bei hohen Trefferraten auf der Seite sind nur optischer Natur, im Hintergund wird dank "flock" trotzdem zuverlässig weitergezählt :-))
Grüße
Steffen D.
Das funktioniert mit SSI. Du hast dann in
das ist ein weg. der andere (und übliche) ist: du generierst mit GD.lib ein GIF und bindest es dann wie folgt ein
<img src="/cgi-local/mein_counter.pl">