Besucherzähler mit einer Datei und einem Cookie als Reloadsperre

0 | 5 Kommentare | 4951 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Besucherzähler mit einer Datei und einem Cookie als Reloadsperre" mit Ihrem Wissen!

Anzeige Hier werben

Datei erzeugen

Zunächst müssen Sie eine Datei anlegen, in der der Zählerstand gespeichert wird. Das machen Sie am besten über ein FTP-Programme wie FileZilla. Alternativ können Sie es über eine Datei (create.php) erstellen:

create.php  
PHP
1
2
3
4
5
6
7
8
9
<?php
$file = "ordner/counter.txt";

if(!file_exists($file)) {
  $cr = fopen($file, "w");
  fwrite($cr,"0");
  fclose($cr);
}
?>
Zeile Beschreibung
2 Geben Sie hier den Ordner mit Dateiname ein. Da eine Text-Datei erstellt werden soll muss am Dateiname .txt angefügt werden
4 Kontrolliert ob die Datei bereits existiert
6 Erstellt die Datei, schreibt "0" rein

Nach dem einmaligen Aufrufen kann diese Datei gelöscht werden.

Auslesen des Counters

Nun können Sie den Zählerstand auslesen und ausgeben.

counter.php  
PHP
1
2
3
4
5
<?php
$file = "ordner/counter.txt";
$op = fopen($file,"r");   //Das "r" steht für read
$counter = fread($op, 13);
fclose($op);
Zeile Beschreibung
2 Geben Sie hier den Ordner mit Dateiname ein. Da eine Text-Datei erstellt werden soll muss am Dateiname .txt angefügt werden
3 Öffnet die Datei. "r" steht für read
4 Ließt die ersten 13 Zeichen der Datei. Das bedeutet wenn ihr über 9 Billionen Nutzer erwartet, solltet ihr die Zahl erhöhen ;-)

Erhöhen des Counters

Bevor Sie den Counter erhöhen, kontrollieren Sie, ob der Nutzer die Seite innerhalb der letzten 24 Stunden bereits aufgerufen hat. Das geschieht in diesem Beispiel mit Hilfe eines Cookies. Der große Nachteil der Methode ist, dass jeder Nutzer das Setzten dieser kleinen Dateien verbieten kann. Das ist bei etwa 1% der Nutzer der Fall.

counter.php  
PHP
1
2
3
4
5
6
7
8
9
$besucher = $_COOKIE['besucher'];
if (!isset($besucher)) {
  setcookie ("besucher","1");
  $counter++;
  $op = fopen($file, "w");
  fwrite($op, $counter);
  fclose($op);
}
?>
Zeile Beschreibung
2 Prüft ob der Cookie existiert, falls nicht führe folgendes aus:
3 Setzt den Cookie mit dem Name "besucher" und dem Wert "1"
4 Erhöht den Counterwert
5 Öffnet die Datei, "w" steht für write
6 Schreibt den neuen Counterstand in die Datei
7 Schließt die Datei

counter.php

Hier die komplette Datei:

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?php
$file = "ordner/counter.txt";
$op = fopen($file,"r");   //Das "r" steht für read
$counter = fread($op, 13);
fclose($op);

$besucher = $_COOKIE['besucher'];
if (!isset($besucher)) {
  setcookie ("besucher","1");
  $counter++;
  $op = fopen($file, "w");
  fwrite($op, $counter);
  fclose($op);
}

echo 'Sie sind der '.$counter.'. Besucher auf dieser Website';
?>

Einbinden

 
PHP
1
2
3
<?php
include ("counter.php");
?>

Fazit

Dies ist ein Counter der noch ausbaufähig ist. Zum Beispiel könnte man - was rechtlich schwierig ist - eine IP Sperre erstellen, damit es seltener vorkommt, dass Leute mehrfach gezählt werden.

Um eine noch bessere Statistik über ihre Besucher zu erhalten können Sie den Flashcounter von Webmasterpro verwenden, den Sie hier finden.


Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher hat 1 Person an der Seite "Besucherzähler mit einer Datei und einem Cookie als Reloadsperre" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Besucherzähler mit einer Datei und einem Cookie als Reloadsperre" hier bearbeiten.

Mitarbeiter

Kommentare: Besucherzähler mit einer Datei und einem Cookie als Reloadsperre

Neuen Kommentar schreiben
Hat mein Besucherzähler eine Reloadsperre?
Beantworten

Ich hab da eine Frage. Ich hab bei mir kostenloser-counter.org installliert. Wie stelle ich fest ob er die Reloadsperre hat?

Virsch am 19.12.2012 um 20:17
Re: Hat mein Besucherzähler eine Reloadsperre?
Beantworten

Du kannst davon ausgehen, dass er eine hat. Aber schau dir doch mal den Counter an. http://fc.webmasterpro.de/

Ahnungsloser am 21.12.2012 um 11:47
selbst ist der mann ;P
Beantworten

Kann doch jeder alles ändern, oder?!

Also haut rein ;)

Ahnungsloser am 02.06.2012 um 10:21
Datei existiert?!
Beantworten

Vieleicht sollte noch eine Überprüfung einbauen, ob die counter.txt existiert.

 
PHP
1
2
3
4
5
6
7
$file = "ordner/counter.txt";
if(! is_file($file) ) {
    // entweder einen Fehler ausgeben
    echo 'Die Datei "' . basename($file) . '" existiert nicht!';die();
    // oder die Datei erstellen
    file_put_contents($filename,'0');
}
Marcel Domke am 01.06.2012 um 12:05
file_get/put_contents
Beantworten

Tipp: Du kannst fopen/fread/fwrite/fclose durch file_get_contents bzw. file_put_contents ersetzen.

David Danier am 21.11.2011 um 10:06