Counter Tutorial
Einen ganz schlichten MySQL-Counter mit IP Sperre.
So schwer es sich anhört, desto leichter ist es...
Fangen wir ganz vorne an, mit der Einrichtung der MySQL Table.
So sollte sie aussehen:
CREATE TABLE page_counter (
ip varchar(255) NOT NULL default '',
time varchar(255) NOT NULL default ''
);
Kurze Erklärung:
Spalte IP: Hier werden die IP's der Besucher gespeichert.
Spalte Time: Hier wird die Zeit des Besuches gespeichert.
Wenn das gemacht ist, gehts weiter zum Script.
Als erstes Stellen wir eine Verbindung zum Server her:
$host = "123.123.123.123";
$user = "user";
$pass = "password";
$db = "datenbank";
@mysql_connect($host,$user,$name) or die("Couldn't Connect");
@mysql_select_db($db) or die("Database Error");
Das war der erste Teil. Weiter zu den Variablen die man braucht.
$sperren = "3600";
$aktiv = "180";
$table = "counter";
$time = time();
$sperren = $time-$sperren;
Erklärung:
$sperren: In dieser Zeit in Sekunden wird die IP gesperrt (Für IP Sperre).
$aktiv: In dieser Zeit ist der User auf der HP aktiv.
$counter: Die Table des Counters.
$time: Unix-Timestamp.
$sperren: Wichtig für IP Sperre.
So und weiter...
Als erstes überprüfen wir ob die IP in der DB schon vorhanden ist.
Dies geschieht so:
$abfrage = mysql_query("SELECT * FROM $table where time>'$sperren'");
$count=0;
while($ausgabe = mysql_fetch_array($abfrage)){
if($ausgabe['ip'] == $REMOTE_ADDR){
$count ;
}
}
Erklärung:
Jaaaaa, was gibts da schon zu erklären..... Ist halt einfach so....
Nein, im Ernst: Hier werden alle Einträge in der DB durchgechecked ob die IP vorhanden ist.
Wenn sie vorhanden ist, wird die $count um 1 erhöht.
Im späteren Verlauf wird die $count weiter verwendet.
Weiter gehts im Programm: Als nächstes legen wir einen neuen Eintrag an, wenn die IP noch nicht
in der Datenbank vorhanden ist. Dies macht man so:
if($count == 0){
$eintrag=mysql_query("INSERT INTO $table (ip, time) values('$REMOTE_ADDR', '$time')");
}
Erklärung: Ist oben schon gesagt.
So, jetzt folgen die Abfragen für den CounterStand. Diese können nach belieben eingebaut werden.
Folgende Möglichkeiten gibt es hier:
Gesamte Besucher:
$abfrage = mysql_query("SELECT * FROM $table");
$countergesamt = mysql_num_rows($abfrage);
Besucher in den lezten 24 Stunden:
$tag = $time - 3600 * 24;
$abfrage = mysql_query("SELECT * FROM $table where time>'$tag'");
$countertag=mysql_num_rows($abfrage);
Besucher in der lezten Stunde:
$stunde = $time - 3600;
$abfrage = mysql_query("SELECT * FROM $table where time>'$stunde'");
$counterstunde = mysql_num_rows($abfrage);
Momentane Besucher (Online)
$online = $time - $aktiv;
$abfrage = mysql_query("SELECT * FROM $table where time>'$online'");
$counteronline = mysql_num_rows($abfrage);
Das waren alle Möglichkeiten die uns der Counter bietet.
Nun könnt Ihr euch hoffentlich euren persönlichen Counter basteln.
|