Skip to main content

Alles für die Homepage... Scripte, Templates, Workshops und Support

Counter mit reload Sperre per Sessions

Möchte man feststellen, wie gut eine Seite besucht ist, benötigt man einen Counter. Aber Counter ohne IP-Sperre bringen nicht viel, weil immer wenn der Besucher auf die nächste Seite geht, wird der Counterstand erhöht.

legen wir mal los…

So erhält man eigentlich nur das Page Impressum. Man möchte aber die Besucherzahl eigentlich wissen.
Dieser Counter arbeitet mit Session, wenn der Besucher die Seite zum ersten Mal aufruft, wird eine Session für diesen gesetzt, später muss man nur noch überprüfen, ob diese Session gesetzt ist oder nicht.

Ganz oben, bevor wir igrendetwas ausgeben, egal ob mit PHP oder HTML, muss folgendes stehen:

CODE:
<?php
session_set_cookie_params(10800);
session_start();
?>

Mit session_set_cookie_params(10800); stellen wir ein, wielange der Session Cookie leben soll, hier sind es 10800 Sekunden (1 Stunde hat 3600 Sekunden, 3 Stunden = 10800 Sek.).
Mit session_start(); erlauben wir PHP, mit Session zu arbeiten.

Als nächstes kommt der Counter:

CODE:
<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);

if($counterstand == "")
   {
   $counterstand = 0;
   }

if(!isset($_SESSION['counter_ip']))
   {
   $counterstand++;
   rewind($datei);
   fwrite($datei, $counterstand);
   $_SESSION['counter_ip'] = true;
   }

echo $counterstand;
fclose($datei);
?>

Zuerst müssen wir die Datei counter.txt anlegen, und sollten dort eine 0 hinnein schreiben.
Falls wir das nicht machen, übernimmt das PHP für uns.

Als nächstes wird überprüft, ob die Session counter_ip registiert ist. isset() überprüft, ob eine Variable gesetzt ist, das ! davor bewirkt also, dass wir überprüfen, ob die Session Variable nicht gesetzt ist. Wenn die Variable also nicht gesetzt ist, wird der Counterstand um 1 erhöht. Der neue Counterstand wird dann wieder in counter.txt gespeichert und die Session counter_ip wird registiert. Am Ende wird der Counterstand noch ausgegeben.

Wenn der Besucher jetzt auf die nächste Seite geht, ist die Session counter_ip bereits registiert, und der Counterstand wird nicht erhöht.


Ähnliche Beiträge



Keine Kommentare vorhanden


Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *