PHP Counter mit grafischer Ausgabe



Dieser grafische Counter ist eine Weiterentwicklung des von mir entwickelten texbasierten Counters, geschrieben von Shadowalker. Die Tabellen, usw. sind die gleichen, können also von dem Textcounter übernommen werden. Zu beachten ist noch, dass die Zahlen als GIF Images vorliegen müssen.



Source:

<?
/*Counter
Source_by_Thomas Elste
edited_by_Marcus Günter
*/
Um den Counter nutzen zu können braucht man eine Datenbank mit den Tabellen:
visitors (zeit: bigint; ip:text)
hits (count:int)
es müssen keine Werte vorgegeben werden

Der Counter ist so konzipiert das er mittels include-Anweisung eingebunden werden kann.
Für die grafische Ausgabe sollten die Bilder 0.gif bis 9.gif in einem Unterverzeichnis abgelegt sein.

Anzupassen sind:
user -> Benutzername der Datenbank
password -> Passwort des Datenbankbenutzers
database -> Name der Datenbank
imagepath/ -> Pfad zu den Zahlen GIFs (weglassen, wenn im gleichen Verzeichnis)
*/

     mysql_connect("localhost","user","password");
     $reloadsperre=21600;              //6 Stunden Realoadsperre
     $ip_neu=getenv("REMOTE_ADDR");         //ip des besuchers ermitteln
     settype($ip_neu, "string");
     $zeit=time();                          //aktuelle zeit ermitteln
	 $grenze=$zeit-$reloadsperre;           //zeitgrenze errechnen
     mysql_db_query("database","delete from visitors where zeit < $grenze");          //"Alte" ips löschen

     $result=mysql_db_query("database","Select * from visitors where ip = '$ip_neu'");        //ip vergleichen
     $zeilen=mysql_num_rows($result);        //anzahl der ergebnisse

     if ($zeilen == 0)
     {
          $zeilen_hits=mysql_db_query("database","Select count(count) from hits");
          if ($zeilen_hits == 0)
          {
               mysql_db_query("database","insert into hits (count) values (1)");
          }
          else
          {
               mysql_db_query("database","update hits set count=count+1");         //counter erhöhen
          }
          mysql_db_query("database","insert into visitors (zeit,ip) values ('$zeit', '$ip_neu')");      //ip eintragen
     }

     $result_hit=mysql_db_query("database","Select * from hits");
     $anz=mysql_Result($result_hit,0,"count");

/* die einfache Textausgabe die außerhalb des counters formatiert wird*/
//     echo $anz;

/* jetzt kommt die grafische ausgabe  */
     settype($anz, "string");
     for ($i=0; $i < strlen($anz); $i++)
     {
          $nummer=substr($anz,$i,1);
          echo '<img src="imagepath/',$nummer,'.gif" alt="',$anz,'">';
     }

     mysql_close();
?>