So, jetzt hab ich auchmal einen Counter geschrieben.
Was kann der Counter?
- IP wird gespeichert, damit keine Doppelzählung vorkommt
- Es wird angezeigt wer...
... Gestern auf der Seite war.
... Jetzt gerade auf der Seite ist.
... An diesem Tag auf der Seite war.
... In diesem Monat auf der Seite war.
... Insgesamte Besuche der Seite.
Was ist mit dem Design?
Ich hab das ganz ohne Design oder css gemacht, damit Ihr selbst das gestalten könnt wie Ihr wollt.
Brauch ich eine Datenbank und was muss ich eintragen?
- Ja, eine Datenbank wird benötigt, man braucht 1ne Tabelle
- Was du eintragen must ist ganz simpel, geh auf SQL und dann müsstest du ein Textfeld haben, dort folgendes eintragen:
CREATE TABLE `counter`
(
`ip` varchar(20) NOT NULL default '',
`date` date NOT NULL default '0000-00-00',
`time` int(11) NOT NULL default '0'
) TYPE=MyISAM;
Was für einen Code brauch ich?
Erstelle eine Neue PHP datei oder schreibe diesen Code in eine Vorhandene.
Beginne als erstes mit
<?php
Wie es bei jeder PHP datei sein muss.
Nun muss man eine Verbindung zu der Datenbank herstellen:
$dbhost = "host"; // Hier dein HOST eintragen
$dbuser = "user"; // Hier deinen Username eintragen
$dbpassword = "passwort"; // Hier dein Passwort eintragen
$dbbase = "datenbank"; // Hier dein Datenbankname eintragen
mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbbase);
darunter kommt jetzt
$today = date("Y-m-d"); /* Das heutige Datum wird ausgelesen */
$yesterday = date('Y-m-d',strtotime("-1 day")); /* Das gestrige Datum wird ausgelesen */
$this_month = date("m"); /* Hier wird der jetzige Monat ausgelesen */
$this_year = date("Y"); /* Hier wird das jetzige Jahr ausgelesen */
so, das war jetzt der erste schritt, jetzt haben wir einige Variablen bestimmt, jetzt kommen wir dazu, die IP das users mit den IP´s in der Datenbank zu vergleichen
$pruefe_ip = mysql_query("SELECT ip FROM counter WHERE ip='".getenv (REMOTE_ADDR)."'"); /* Suche die IP das Users in der Datenbank */
$zeilen = mysql_num_rows($pruefe_ip); /* Speichere in der Variable $zeilen , wieviele Zeilen mit dieser IP gefunden wurden */
if($zeilen==0) /* Wenn keine Einträge gefunden wurden */
{
mysql_query("INSERT INTO counter ( ip , date, time )VALUES ( '".getenv (REMOTE_ADDR)."', '".$today."', '".time()."')"); /* Trage in die Datenbank ein, die IP, das jetzige Datum und die jetzige Zeit */
}
Jetzt haben wir die Prüfung der IP gemacht, jetzt fehlt noch das heraussuchen der Einzelnen Besucherzeiten ( Jetzt besucher, gestern besucher, heute besucher, diesen Monat besucher, insgesamt besucher )
dazu kommt folgender Code in Frage:
$hole_daten_jetzt = mysql_query("SELECT time FROM counter WHERE time>'".(time()-300)."'"); /* Holt alle Einträge, die 5minuten oder weniger alt sind */
$zaehle_jetzt = mysql_num_rows($hole_daten_jetzt); /* Zähle die Einträge */
$hole_daten_heute_online = mysql_query("SELECT date FROM counter WHERE date = '".$today."'"); /* Holt alle Einträge, die mit dem jetzigen Datum übereinstimmen */
$zaehle_heute = mysql_num_rows($hole_daten_heute_online); /* Zähle die Einträge */
$hole_daten_gestern_online = mysql_query("SELECT date FROM counter WHERE date = '".$yesterday."'"); /* Holt alle Einträge , die mit dem gestrigen Datum übereinstimmen */
$zaehle_gestern = mysql_num_rows($hole_daten_gestern_online); /* Zähle die Einträge */
$hole_daten_diesen_monat_online = mysql_query("SELECT date FROM counter WHERE date LIKE '".$this_year."-".$this_month."%'"); /* Holt alle Einträge, die mit dem jetzigem Monat übereinstimmen */
$zaehle_diesen_monat = mysql_num_rows($hole_daten_diesen_monat_online); /* Zähle die Einträge */
$hole_daten_insgesamt_online = mysql_query("SELECT date FROM counter");/* Holt alle Einträge, die gemacht wurden */
$zaehle_insgesamt = mysql_num_rows($hole_daten_insgesamt_online); /* Zähle die Einträge */
Damit hätten wir den PHP code soweit geschaft, jetzt fehlt noch das zumachen des <?php
deshalb noch
?> einfügen
Jetzt die Datei abspeichern, so. Jetzt fehlt nur noch eine KLeinigkeit, die ich euch offen lasse, Ihr habt jetzt 5 Variablen, die Ihr irgendwo auf der Seite einsetzen könnt, beachtet aber dass die Variablen unter dem Code stehen müssen und nicht obendrüber.
Ihr habt folgende Variablen:
$zaehle_jetzt
$zaehle_heute
$zaehle_gestern
$zaehle_diesen_monat
$zaehle_insgesamt
Wenn ihr diese in die PHP file einfügen wollt, und es nicht im PPHP code geschiet also zwischen <?php und ?> dann empfehle ich es so einzufügen:
Jetzt online: <?=$zaehle_jetzt?>
Besucher Heute: <?=$zaehle_heute?>
Besucher Gestern: <?=$zaehle_gestern?>
Besucher in diesem Monat: <?=$zaehle_diesen_monat?>
Besucher insgesamt: <?=$zaehle_insgesamt?>
damit Ihr seht wie sowas aussieht, ganz ohne style hier http://www.fabianh.de/counter.php
MFG