PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
   » Gästebuch
   » Logfiles
   » Sitemap
   » Login
   » Login Sessions
   » Login Sessions +
      Dateien

   » Links anklickbar
   » Counter
   » Dateiupload
   » Formular mailer
   » Cookies

» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
Mathe Nachhilfe
Suchmaschinenoptimierung
PHP Forum

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. 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.

Was Sessions überhaupt sind, erfahrt ihr in unserem Tutorial unter dem Abschnitt Sessions.

Ganz oben, bevor wir igrendetwas ausgeben, egal ob mit PHP oder HTML, muss folgendes stehen:
<?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:
<?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.

Autor Andavos

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Prinzip des Kampfsystemes kurz un ...

» Facebook Connect

» Geometrische Formen verlinken







© PHP-Einfach.de 2003 - 2010