SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=39
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Online-Besucherzähler


Ein Counter (Besucherzähler), welcher den Besucher der Website darüber aufklärt, wie viele Besucher bereits vor ihm die jeweilige Website oder Webanwendung aufgerufen haben, eignet sich für hervorragend als Beispiel für PHP-Programmierung und den Einsatz in Dreamweaver. Dabei setze ich allerdings einige fundamentale Grundkenntnisse wie den Umgang mit Variablen, benutzerdefinierten Funktionen und include()-Bestandteilen voraus.

Werfen wir doch gleich mal gemeinsam einen Blick auf die Codezeilen.


Textcounter

<?php

// Simple Counter v1.0
// Für die korrekte Funktionsweise des Counters ist darauf zu
// achten, dass die entsprechenden Schreibrechte auf dem
// Webserver gesetzt sind.

// Counterdateiname
$datei="counter.txt";

// Anzahl der führenden Nullen
$stellen = 5;

if(file_exists($datei)){
  // Falls die Datei existiert, wird sie ausgelesen und
  // der dort enthaltene Wert um Eins erhöht.
  $fp=fopen($datei,"r+");
  $zahl=fgets($fp,$stellen);
  $zahl++;
  rewind($fp);
  flock($fp,2);
  fputs($fp,$zahl,$stellen);
  flock($fp,3);
  fclose($fp);
}else{
  // Die Datei counter.txt existiert nicht, sie wird
  // neu angelegt und mit dem Wert 1 gefüllt.
  $fp=fopen($datei,"w");
  $zahl="1";
  fputs($fp,$zahl,$stellen);
  fclose($fp);
}

// Diese Funktion sorgt für die Formatierung
// in diesem Fall für die führenden Nullen
$zahl=sprintf("%0".$stellen."d",$zahl);

?>

Ich empfehle Ihnen, diese Codezeilen in eine Datei namens counter.php abzuspeichern. Durch die if-Anweisung wird entweder eine vorhandene Textdatei counter.txt ausgelesen und deren Wert anschließend um 1 erhöht oder eine neue Textdatei counter.txt angelegt und der Wert mit 1 initialisiert. Die Variable $fp enthält den Dateizeiger (engl. FilePointer), welcher auf die entsprechende Datei verweist. Die Funktion rewind() sorgt dafür, dass der Dateizeiger wieder an die Anfangsposition zurückgesetzt wird, um anschließend mit der Funktion fputs() den in der Variablen $zahl enthaltenen Wert zu verwenden und den bisherigen Inhalt der Datei zu überschreiben. Mithilfe der Funktion flock() wird sichergestellt, dass die Datei während des Schreibvorgangs verriegelt wird. Dies ist notwendig, um beispielsweise einen simultanen Zugriff auf die Datei zu verhindern, durch diesen könnte die Datei möglicherweise zerstört werden und es zu einem Datenverlust kommen. Im Fall des Besucherzählers würde dies zum Zurücksetzen des Besucherzählers führen.

Im letzten Schritt wird der Inhalt der Variablen $zahl formatiert, und zwar so, dass eine festgelegte Zahl von führenden Nullen hinzugefügt wird. Die Funktion sprintf() dient dabei der formatierten Ausgabe von Zeichenketten. Der Aufruf des Counters kann anschließend aus jedem beliebigen PHP-Skript Ihrer Website erfolgen, und zwar wie folgt:

<?php

include("counter.php");
echo $zahl;

?>

Ausgabe
00001

Natürlich steht es Ihnen frei, die Ausgabe des Counters mithilfe von HTML-Tags zu formatieren. Es liegt bei Ihnen, die Formatierung entweder in der Code- oder der Entwurfsansicht durchzuführen.



Bild 5.1: simplecounter.php-Datei in Dreamweaver (Code-/Entwurfsansicht)

Beispiel

<html>
<head>
<title>Simple Counter</title>
</head>
<body>
<font face=Arial color=blue size=5>Besucher:</font>
<?php

include("counter.php");
echo "<font face=Arial color=blue size=5>$zahl</font>";

?>
</body>
</html>




Bild 5.2: Im Einsatz: Der formatierte Besucherzähler (Textversion)