Werbung einblenden Werbung ausblenden


Sie haben links zwei Hyperlinks. Mit dem einen können Sie auf eine andere Seite wechseln. Dies bewirkt, dass der Perl Skript zeitspeichern.pl angeschoben wird (über den event handler onunload). Diesem Perl Skript übergeben wir drei Variablen. Ihre IP Adresse, die Zeit, die Sie auf dieser Seite mit dem Studium dieses Textes verbracht haben und den Namen der Datei. Wenn Sie auf den zweiten Hyperlink clicken, fischt ein Perl Skript diese Daten aus einer Flatfile Datenbank. Sie sehen dann, dann Ihre IP Adresse und wie lange Sie und andere gebraucht haben, um diesen Text zu lesen. Alle diese Variablen ermittelt der Skript selber. Das heisst, wenn wir mehrere Seiten kontrollieren wollen, brauchen wir immer nur den identischen JavaScript Quellcode also das hier

<script language="javascript">

var altzeit=new Date();
var dauer;
var differenz;
function neuzeit2()
{
neuzeit=new Date();
differenz=neuzeit.getTime() - altzeit.getTime();
dauer=parseInt(differenz/1000);

setTimeout("neuzeit2()",1000);
}
function speichern()
{
dauer=String(dauer);
url=document.URL.replace(/.*\\/,"");
url=url.replace(/\./,"_");
parent.unsichtbar.location.href="http://127.0.0.1/cgi-bin/zeitspeichern.pl?zeit="+dauer+"&datei="+url;
}
window.onload=neuzeit2;
window.onunload=speichern;
</script>

in die entsprechende Seite hineinzukopieren. Wir wundern uns etwas über diese Zeile.

parent.banane.location.href="http://127.0.0.1/cgi-bin/zeitspeichern.pl?zeit="+dauer+"&datei="+url;

Es ist so, dass eine location.href ja eigentlich ein Dokument laden soll. Das wollen wir aber nicht. Wir wollen nur, dass ein Perl Skript angeschoben wird, der aber nichts zurückliefern soll. Die einzige Möglichkeit, die wir in diesem Zusammenhang haben, ist das Ergebnis in einen nicht sichtbaren Frame zu schiessen. Das heisst, unser Zähler funktionniert nur solange, wie der User auf unserer Website bleibt.