Wie viele Besucher sind auf meiner Seite? Eine Lösung mit PHP.

Drucken
Bewertung:  / 1
SchwachSuper 
Kategorie: WWW-Programmierung
Erstellt am Dienstag, 14. März 2006 Zuletzt aktualisiert am Sonntag, 31. Dezember 2006

Skill 2 Skill 2

'Besucher online: xx'
Das sieht man häufig auf Websites. Wer so einen Zähler auch auf seiner Seite einsetzen möchte, kann sich einerseits Lösungen bedienen, die z.B. auf MySQL Datenbanken aufsetzen. Andererseits geht es auch mit einem Codeschnipsel PHP:

Das kleine Script speichert Session-Cookies auf dem Webserver, der nach einer bestimmten Zeit wieder gelöscht wird.

Die Zeile

session_save_path("/server/pfad/counter");

muß nicht unbedingt sein. Wird der Pfad, auf dem die Session-Cookies gespeichert werden sollen, nicht definiert, speichert das Script z.B. auf Linux-Rechnern standardmäßig in /tmp. Hier muss man dann allerdings aufpassen, Session-Cookies nicht an mehreren Stellen einzusetzen, da sonst alle im gleichen Verzeichnis gespeichert werden und so das Ergebnis verfälscht wird.

Die nächste Zeile fügt eine neue Session hinzu, oder aktualisiert eine bestehende.
Die Funktion benutzerzaehlen() zählt dann die gespeicherten Session-Cookies innerhalb des Ordners und gibt diese an den Browser aus.
Der User sieht also die Zahl der aktuell gespeicherten Session-Cookies.

Standardmäßig bleiben Sessions 1440 Sekunden gespeichert, also genau 24 Minuten. in der Datei php.ini Ihres Webservers können Sie diesen Wert ändern. Geht das nicht, oder wollen Sie den Wert beibehalten, müssen Sie veraltete Sessions manuell herausfiltern. Ersetzen Sie dafür die Zeile

count++;

durch diese

if(time()- fileatime(session_save_path() . '/' . $file) < (5 * 60)) { $count++; }

Der Wert (5 * 60) bestimmt in Minuten wie lange ein Besucher nach dem Aufruf der entspechenden Seite als aktiv gilt, hier also 5 Minuten gleich 300 Sekunden.

Wenn Sie das Script auf einer Webseite einbauen, vergessen Sie nicht, Ihr die Endung .php zu geben, damit das Script beim Aufruf auch entsprechend ausgeführt wird.

Hier nun das vollständige Script:

<?php
session_save_path("/server/pfad/countuser");
session_start();
function benutzerzaehlen(){
if ( $directory_handle = opendir( session_save_path() ) ) {
$count = 0;
while ( false !== ( $file = readdir( $directory_handle ) ) ) {
if($file != '.' && $file != '..'){
$count++;
}
}
closedir($directory_handle);
return $count;
} else { return false; }
}
echo 'Anzahl User online: ' . benutzerzaehlen() . '<br>';
?>

 

 

Weitersagen!

Veröffentlichen Sie ihre Kommentare ...

    Virtual Server von Host Europe
    Copyright 2011 Wie viele Besucher sind auf meiner Seite? Eine Lösung mit PHP. - Webmacher-FAQ. Copyright 2011 Webmacher-FAQ
    Free Joomla Theme by Hostgator