Problem mit PHP Besucherzähler
Hallo Leute, ich habe ein Problem mit meinem PHP besucherzähler
$gesamt = fopen("gesamt.txt","r+");
$gesamt = fgets($gesamt, 10);
rewind($gesamt);
$gesamt=$zahl+$gesamt;
fwrite($gesamt, $testen);
fclose($gesamt);
und zwar möchte ich immer den Zähler ($zahl) der die Besucher zählt zu den Gesamt Besuchern (gesamt) dazurechnen und in eine txt datei speichern.
Alles funktioniert super bis auf den Punkt wen ich $zahl auf 0 setze setzt sich automatisch der Gesamt Zähler auch auf 0 obwohl es den wert in einer txt Datei gespeichert hat.
$gesamt = fopen("gesamt.txt","r+");
$gesamt = fgets($gesamt, 10);
rewind($gesamt);
$gesamt=$zahl+$gesamt;
fwrite($gesamt, $testen);
fclose($gesamt);
und zwar möchte ich immer den Zähler ($zahl) der die Besucher zählt zu den Gesamt Besuchern (gesamt) dazurechnen und in eine txt datei speichern.
Alles funktioniert super bis auf den Punkt wen ich $zahl auf 0 setze setzt sich automatisch der Gesamt Zähler auch auf 0 obwohl es den wert in einer txt Datei gespeichert hat.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 246068
Url: https://administrator.de/forum/problem-mit-php-besucherzaehler-246068.html
Ausgedruckt am: 11.04.2025 um 14:04 Uhr
9 Kommentare
Neuester Kommentar
Moin,
dein Fehler ist, das du deinen File-Pointer ($gesamt) in der zweiten Zeile überschreibst ! Dann kann natürlich Zeile 3, 5 und 6 nicht mehr Funktionieren da die Variable $gesamt keinen File-Pointer mehr enthält sondern den Inhalt der Texdatei ! Und wo ist bitte $testen deklariert ?
So kann das auf keinen Fall laufen.
Nutze also separate Variablen für Pointer und Textinhalt.
Grüße Uwe
dein Fehler ist, das du deinen File-Pointer ($gesamt) in der zweiten Zeile überschreibst ! Dann kann natürlich Zeile 3, 5 und 6 nicht mehr Funktionieren da die Variable $gesamt keinen File-Pointer mehr enthält sondern den Inhalt der Texdatei ! Und wo ist bitte $testen deklariert ?
So kann das auf keinen Fall laufen.
Nutze also separate Variablen für Pointer und Textinhalt.
Grüße Uwe

Hallo,
du machst einige Fehler:
1. Du verwendest die Variable $gesamt zu häufig - bzw. für unterschiedliche Typen!
2. Du möchtest $testen in die Datei "gesamt.txt" schreiben - das geht nicht, weil $gesagt kein File-Stream bzw. Object mehr ist, sondern nun die Zahl deiner Besucher innehält -> Ich verweise hier auf Problem 1!
3. Was soll $zahl machen? Die ist aktuell nicht initialisiert bzw. deklariert - ergo hat sie den Wert 0!
4. Wenn du einfach den Counter um eine Stelle erhöhen möchtest geht auch $gesamt++;
Schau dir doch das hier einmal an:
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=39
Ansonsten:
Das sollte es gewesen sein - ungetestet!
LG,
Florian
du machst einige Fehler:
1. Du verwendest die Variable $gesamt zu häufig - bzw. für unterschiedliche Typen!
2. Du möchtest $testen in die Datei "gesamt.txt" schreiben - das geht nicht, weil $gesagt kein File-Stream bzw. Object mehr ist, sondern nun die Zahl deiner Besucher innehält -> Ich verweise hier auf Problem 1!
3. Was soll $zahl machen? Die ist aktuell nicht initialisiert bzw. deklariert - ergo hat sie den Wert 0!
4. Wenn du einfach den Counter um eine Stelle erhöhen möchtest geht auch $gesamt++;
Schau dir doch das hier einmal an:
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=39
Ansonsten:
<?php
$besucher = 0;
$datei = fopen("gesamt.txt","r+");
$besucher = fgets($datei, 10);
rewind($datei);
$besucher++;
fwrite($datei, $besucher);
fclose($datei);
?>
Das sollte es gewesen sein - ungetestet!
LG,
Florian

Hallo,
das wirst du so einfach nicht hinbekommen!
Schau dir doch mal das hier an:
http://www.html.de/threads/php-besucherzaehler-mit-cookie-sperre-und-oh ...
LG,
Florian
das wirst du so einfach nicht hinbekommen!
Schau dir doch mal das hier an:
http://www.html.de/threads/php-besucherzaehler-mit-cookie-sperre-und-oh ...
LG,
Florian
Aber dafür korrekte Ergebnisse, was bei deiner Variante vermutlich nicht der Fall ist, hier zählt dann quasi jeder Seitenaufruf egal wie oft einzelner User die Seite aufruft, was das Ergebnis verfälscht. Also halte dich an die gängigen Prozeduren für Besucherzähler. Du musst hier das Rad nicht neu erfinden. Die vorhandenen Scripte sind erprobt und bringen vor allem "richtige" Ergebnisse !
Grüße Uwe
Grüße Uwe
Ein einfaches Script das den Counter für das jeweilige Datum zusammen in einer Datei speichert kannst du z.B. so realisieren:
Die Logdatei sieht dann so aus:
hinter dem Datum wird dann der Counter abgelegt und bei jedem Aufruf entsprechend dem aktuellen Datum aktualisiert.
Zu beachten ist, dass im Script das Cookie für eine Stunde gesetzt wird (3600s), also in diesem Zeitraum für diesen User nur einmal gezählt wird. User die Cookies deaktiviert haben sind im Script jetzt nicht berücksichtigt.
Ich persönlich würde aber zu einer Datenbank raten !
Grüße Uwe
Die Logdatei sieht dann so aus:
09.08.2014;200
10.08.2014;334
11.08.2014;22
<?php
session_set_cookie_params(3600);
session_start();
$logpath = "/test_counter.txt";
if (!$_SESSION['counter_ip']){
$strLog = file_get_contents($logpath);
$today = date('d.m.Y');
if (preg_match("/^$today/m",$strLog)){
$result = preg_match("/^$today;(\d+)/m",$strLog,$matches);
$counter = $matches[1];
$counter++;
$strNewLog = preg_replace("/(^$today;)(\d+)/m",'${1}'.$counter,$strLog);
file_put_contents($logpath,$strNewLog);
}else{
$f = fopen($logpath,"a");
fwrite($f,$today.';1');
fclose($f);
}
$_SESSION['counter_ip'] = true;
}
?>
Ich persönlich würde aber zu einer Datenbank raten !
Grüße Uwe