PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» 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 Funktion via PHP

Zurück zur Übersicht

Liebe/r Besucher, in diesem Tutorial erkläre ich euch wie ihr euch einen erweiterten Counter via PHP / MySQL ganz einfach programmiert!

Als Grundlage solltet ihr eine Datenbank (bei mir heiß sie homepage) und eine Tabelle(bei mir counter) besitzen ;). Diese sollte wie folgt aufgebaut sein:
ip,varchar(150),not null, , , primary, ,
time,varchar(150),not null, , , , ,

Warum wir gerade diesen Aufbau gewählt haben wirst du im laufe des Tutorials noch erfahren.

counter.php
 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
<?php
   
/* ********************************************
   Counter Funktion via PHP
   ---------------------------------------------
   by [Sn1ff3r] für php-einfach.de , Oktober 2009
   ---------------------------------------------
   Das Skript darf frei genutzt werden, jedoch
   darf weder dieser Kasten entfernt noch ein
   eigenes Copyright o.Ä. eingefügt werden!
   ---------------------------------------------
  ******************************************** */

  
$verbindung mysql_connect("localhost""USERNAME""PASSWORT")or die("<b>Error:</b><br>".mysql_error()."");
                
mysql_select_db("DATENBANK")or die("<b>Error:</b><br>".mysql_error()."");

/* *******************************************
   * AB HIER KEINE ÄNDERUNGEN MEHR VORNEHMEN *
   ******************************************* */

$ip $_SERVER["REMOTE_ADDR"];

$time_h date("d.m.Y"time());
$time_g date("d.m.Y"time()-86400);

$sql mysql_query("SELECT * FROM counter ORDER BY ip DESC");

$row mysql_fetch_object($sql);

if(
$ip == $row->ip)
  {
    
$timestamp date("d.m.Y"$row->time);

    if(
$time_h == $timestamp)
      {
      }
     else
      {
        
$einfuegen mysql_query("INSERT INTO counter SET ip='$ip', time='".date("d.m.Y"time())."'");
      }
  }
 else
  {
    
$einfuegen mysql_query("INSERT INTO counter SET ip='$ip', time='".date("d.m.Y"time())."'");
  }

$today mysql_query("SELECT * FROM counter WHERE time = '".$time_h."' ORDER BY ip DESC");
$yesterday mysql_query("SELECT * FROM counter WHERE time = '".$time_g."' ORDER BY ip DESC");
$gesamt mysql_query("SELECT * FROM counter");

echo 
"Heute: ";
echo 
mysql_num_rows($today)."<br>";
echo 
"Gestern: ";
echo 
mysql_num_rows($yesterday)."<br>";
echo 
"Gesamt: ";
echo 
mysql_num_rows($gesamt)."<br>";

?>


Als erstes haben wir mit mysql_connect(); eine Datenbankverbindung hergestellt, wobei wir dann noch mit mysql_select_db(); unsere Datenbank ausgewählt haben.

Als nächstes haben wir mit $_SERVER['REMOTE_ADDR'] unsere Ip-Addresse in die Variable $ip gespeichert. Diese werden wir später noch für etwas brauchen.

Nun haben wir 2 Variablen. $time_h steht dafür was die Zeit heute angeht und darum haben wir auch date("d.m.Y", time()) und dann haben wir auch noch eine Variable die, die Besucher für gestern zählen soll und diese desshalb bei mir im Beispiel als $time_g gespeichert haben und in der folgende date() Funktion benutzt haben:
date("d.m.Y", time()-86400)

Nun damit wir auch sehen können wie viele User wir Heute, Gestern und Gesamt auf unserer Seite haben, brauchen wir 3 MySQL Abfragen.
Dazu haben wir uns die Abfragen $today, $yesterday und $gesamt erstellt.

Daraus lesen wir nun hinaus welche Besucher wir Heute, Gestern und Gesamt haben. Bei Heute und Gestern wurde eine WHERE Clause hinzugefügt, denn wir wollen ja nicht alle Besucher aufzählen sondern nur die, die wir Heute haben bzw. Gestern hatten.

Jetzt nachdem wir unsere Variablen haben starten wir mit einer If-Anweisung wo überprüft wird, ob die IP schon in der Datenbank exestiert. Wenn ja starten wir im ersten teil unserer If-Anweisung noch eine Anweisung und überprüfen ob der Besucher schon einmal heute auf unserer Seite gewesen ist. Ist dies der Fall wird nix unternommen aber anderenfalls also else nehmen wir einen Eintrag vor, das er heute unsere Seite besucht hat. Nun wieder zurück zu unser IP überprüfung!
Sollte aber allerdings die IPaddresse nicht in der Datenbank exestieren, so nehmen wir genauso den gleichen Eintrag vor als wenn der User heute noch gar nicht bei uns auf der Seite gewesen wäre, was demnach dann auch richtig ist!

Als letztes brauchen wir noch 3 mysql_num_rows und ein paar echos.
Hier habe ich nochmal den Code!

echo "Heute: ";
echo mysql_num_rows($today)."<br>";
echo "Gestern: ";
echo mysql_num_rows($yesterday)."<br>";
echo "Gesamt: ";
echo mysql_num_rows($gesamt)."<br>";

Fertig ist unser Counter! Ich hoffe euchhat mein Tutorial geholfen und auch sehr gefallen.

*UPDATE's:
- Mir ist aufgefallen wenn man den Counter aufruft zeigt er erst noch die alten Besucher an.
Diesen Fehler habe ich mal behoben!

Kommentare

Zurück zur Übersicht

Autor Sn1ff3r

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