Hallo!
Ich habe den Versuch gestartet einen Counter zu programmieren, allerdings vergebens:
Hier der Code:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Besucherstatistik</title></head>
<body bgcolor="#ffffff">
<?php
$user_ip = $_SERVER['REMOTE_ADDR'];
$has_already_visited = FALSE;
$datei = fopen("users_ip.txt", "rb");
while (!feof($datei)) {
$old_ip = fgets($datei, 4096);
if ($old_ip === $user_ip) {
$has_already_visited = TRUE;
break;
}
else {
continue;}
}
fclose($datei);
// if (has_already_visited === FALSE) {
//EDIT:
if ($has_already_visited === FALSE) {
$was_online = fopen("was_online.txt", "r+");
$aufruf = fgets($was_online, 4096);
++$aufruf;
rewind($was_online); // Dateizeiger an den Anfang setzten
fputs($was_online, $aufruf);
fclose($was_online);
$read_ip = file_get_contents("users_ip.txt");
$user_ip .= "\r\n";
$new_content = $user_ip . $read_ip;
file_put_contents("users_ip.txt", $new_content);
echo $aufruf;}
?>
</body>
</html>
In der Datei "users_ip.txt" werden die IP-Adressen der Besucher gespeichert.
In "was_online.txt" wird der Zählerstand gespeichert.
Der Counter sollte nach folgendem Schema vorgehen:
Den Inhalt der Datei "users_ip.txt" zeilenweise (also immer nur eine ip-adresse) einlesen und danach die eingelesene IP mit der IP des Aufrufers vergleichen.
Wenn dieser Vergleich TRUE ergibt, dann wird die Variable $has_already_visited auch auf TRUE gesetzt und die Schleife verlassen, ansonsten auf FALSE und die Schleife wird fortgesetzt.
Wenn diese if-Bedingung
PHP-Code:
if ($has_already_visited === FALSE)
TRUE ergibt so wird der Zaehlerstand um 1 erhöht und die IP gespeichert, da dies bedeutet, dass der User zum ersten Mal diese Seite aufruft.
Ansonsten wird das Script verlassen.
Was das Script macht:
Gar nichts!