Tutorials Infos - Anleitungen - Hilfe - Dreamcodes
 

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.

 
ID: 113
eingestellt am: 19.03.2003
Autor: ferryx
Status zum lesen: Gast
gelesen: 5716
Webseite: www.dreamcodes.com
[Drucken]