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

Coding

 

‘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>’;
?>

Sascha

Hauptberuflich "Technologietreiber für Onlinezeugs" in einem Großkonzern. Interessiert an Technik im Allgemeinen, je abgedrehter, umso besser. Neben Familie, Hund und Beruf hat er trotzdem noch Spaß daran Sachen aufzuschreiben, die einem tagsüber so begegnen (manchmal auch nachts ;)).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.