php, codeschnipsel, php beispielen
[Code] Counter mit MySQL
   

Main
Home
Fachbuecher
Support Board
Webmaster News
Script Newsletter
Kontakt
Script Installation
Php
Php Tutorials
Impressum

Userbereich
kostenlos Anmelden
Memberliste
Login

Script Datenbank
Script Übersicht
Script eintragen
Script Top 20

Suche

 
Script Seite



Unsere Php Scripts
Counter Script
Umfrage Script
Bilder Upload Script
Terminverwaltung

Script Mods
phpBB Adsense Mod

Tools und Generatoren
.htpasswd Generatoren
md5 Generatoren
base64 Generatoren
ICQ Generatoren
Colorpicker
Unix timestamp Tool
tdl Liste
Webkatalog Verzeichnis

Partner
Sprüche Treff
weiter Partner

Hosterplus.de
Bekommen Sie Webspace, Domains und Rootserver m..


clichehosting..
Webhoster mit recht einfachen Angeboten.


weitere Anbieter

RSS Webmaster Newsfeed von Php Space RSS Webmaster Newsfeed
RSS Script Newsfeed von Php Space RSS Script Newsfeed

Statistik
9 Gäste Online
0 Member Online
555 Besucher heute

 

[Code] Counter mit MySQL

Sie befinden sich: Home > Webmaster News

Hosterplus

[Code] Counter mit MySQL

Im Folgenden wollen wir uns einen eigenen Counter für unsere Webseiten programmieren, der den Zählerstand in einer MySQL-Tabelle verwaltet.

Diese Tabelle müssen wir zunächst erzeugen:


CREATE TABLE `counter` (
`id` INT NOT NULL AUTO_INCREMENT ,
`ipadresse` varchar(15) NOT NULL ,
`letzter_besuch` int(10) unsigned NOT NULL ,
PRIMARY KEY `id` )
TYPE MYISAM ;

INSERT INTO `counter` `ipadresse` `letzter_besuch` )
VALUES ('zaehlerstand', '0');

Wie Sie sehen, haben wir sofort auch eine Zeile erzeugt, in der der Zählerstand gespeichert wird. Wir nutzen hier die Tatsache, dass wir einen varchar-Key und einen numerischen Wert brauchen und beides in dieser Struktur vorfinden. Als 'IP-Adresse' speichern wir das Wort 'zaehlerstand' und als Anfangswert für den Zählerstand den Wert 0. Dies spart uns eine weitere Tabelle, in der nur eine einzige Zeile verwaltet würde.

In dieser Hilfsdatei legen wir die Zugangsdaten für die Datenbank fest und zugleich eine Variable für die Zeitangabe einer Reloadsperre.


<?php
// connect.php

$cfg array();

$cfg['zeitsperre'4;

$cfg['host']='localhost';
$cfg['datenbank']='datenbankname';
$cfg['login']='username';
$cfg['passwort']='...passwort...';

$conn=mysql_connect($cfg['host'],$cfg['login'],$cfg['passwort']);
$db=mysql_select_db($cfg['datenbank']);
?>

Im folgenden gehen wir davon aus, dass connect.php schon per include-Anweisung ausgeführt wurde, es eine Verbindung zur datenbank gibt, und die $cfg[]-Variablen existieren.

Hier nun der erste Entwurf eines Counters, noch Ohne Reloadsperre:


<?php
// Zaehlerstand um erhöhen

$sqlc "UPDATE counter SET letzter_besuch letzter_besuch+1 WHERE ipadresse='zaehlerstand'";
mysql_query($sqlcOR die(mysql_error());

$sqlc "SELECT letzter_besuch FROM counter WHERE ipadresse='zaehlerstand'";
$ergc mysql_query($sqlc);
$rowc mysql_fetch_assoc($ergc);

echo 
'Anzahl Besucher bisher '.$row['letzter_besuch'];
?>
Wenn wir diesen Code einbauen so stellen wir fest, dass mit jedem Aufruf der Seite der Zähler um 1 erhöht wird. Wir wollen nun aber noch erreichen, dass jeder besucher nur einmal gezählt wird. Diese Sperre soll nach Ablauf von 4 Minuten, also der in $cfg['zeitsperre'] gespeicherten Zahl wieder aufgehoben werden. Einen bestimmten User erkennen wir an seiner IP-Adresse. Wir speichern also die erkannte IP zusammen mit der Zeit in die Datenbank. Der Ablauf des Zählens verändert sich nun wie folgt: a) alle Zeilen aus der tabelle löschen, die älter sind als 4 Minuten b) Nachsehen, ob ein Eintrag zur ermittelten IP-Adresse vorliegt b1) Wenn nein: IP-Adresse mit aktuellem Zeitstempel speichern und Counter erhöhen b2) Wenn ja: nichts machen c) neuen Counter auslesen und anzeigen

<?php
// Ermitttle Zeit(jetzt) und Zeit(vor Minuten)
$jetzt time();
$alt $jetzt 60 $cfg['zeitsperre'];

// Alte Zeiten löschen
$sql "DELETE FROM counter WHERE ipadresse != 'zaehlerstand' AND letzter_besuch '$alt'";
mysql_query($sqlOR die(mysql_error());

// IP ermitteln
if ($_SERVER['HTTP_X_FORWARDED_FOR']) 
$realip $_SERVER['HTTP_X_FORWARDED_FOR']; 
else 
$realip $_SERVER['REMOTE_ADDR']; 
}

// Tabellenzeile zu IP suchen
$sql "SELECT letzter_besuch FROM counter WHERE ipadresse '$realip'";
$erg mysql_query($sql);
$row mysql_fetch_assoc($erg);
if(
mysql_num_rows($erg== 0// IP nicht gefunden
// $realip mit $jetzt eintragen
$ins "INSERT INTO counter (ipadresse,letzter_besuch) VALUES ('$realip',$jetzt)";
mysql_query($insOR die(mysql_error());
// Counter erhöhen
$sqlc "UPDATE counter SET letzter_besuch letzter_besuch+1 WHERE ipadresse='zaehlerstand'";
mysql_query($sqlcOR die(mysql_error());
}
// Aktuellen Counter lesen und anzeigen
$sqlc "SELECT letzter_besuch FROM counter WHERE ipadresse='zaehlerstand'";
$ergc mysql_query($sqlc);
$rowc mysql_fetch_assoc($ergc);

echo 
'Anzahl Besucher bisher '.$row['letzter_besuch'];
?>


(Quelle: Wolfgang ), Eingetragen am 30.July.2008


Hosterplus


Ähnliche News

27.08.2008 - [Code] Zaehlen, wie häufig ein Wort in einem ...
26.08.2008 - [Code] Banner ausliefern mit PHP (fpassthru)
26.08.2008 - [Code] Banner ausliefern und pro Linkpartner z&aum...
05.08.2008 - [Video-Tutorial] Mysql Datenbank anlegen im PhpMya...
29.07.2008 - [Tipp] 404-Fehler mit .htaccess abfangen

Letzten Webmaster News

10.09.2008 - [Tipp] Fehler beim Speichern des Alters eines User...
10.09.2008 - [Tipp] Nach Serverumstellung läuft Script nic...
29.08.2008 - [Tutorial] Verbindung zu MySql und Auswahl einer D...
28.08.2008 - [TIPP] PHP code lesbar gestaltet
28.08.2008 - [Tutorial] Arbeiten mit Unix-Zeitstempeln, date(),...







  Anzeige 
Hosterplus

 
 
Webhosting Service | Board Features