[PHP & MySQL] Counter mit IP-Sperre
An dieser Stelle möchte ich erklären, wie man einen Counter mit IP-Sperre basteln kann. Zudem habt ihr die Möglichkeit, den Counterstand als Grafik ausgeben zu können.
Als erstes benötigen wir eine Datenbank mit zwei Tabellen:
counter_hits zum Zählen der Besucher und counter_ips zum Überwachen der IP-Adressen.
Die counter_hits bekommt die Zelle hits als zehnstelligen Integer, der auch null sein darf.
Die counter_ips bekommt die Zellen zeit und ip, wobei zeit ebenfalls ein zehnstelliger Integer und ip ein 15-stelliger Text unterschiedlicher Zeichen ist. Beide können null sein.
Es ergibt sich der folgende Code zum Erstellen der Tabellen:
| SQL: | |
1 |
|
Damit ist die Grundlage für den Counter bereits geschaffen.
Kommen wir also zum eigentlichen Script:
| counter.php: | |
1 |
|
Wir stellen also zunächst einmal die Verbindung zur Datenbank her. Sollte dies schiefgehen, wird eine Fehlermeldung ausgegeben. Diese ist wesentlich kürzer als die standardmäßige Fehlermeldung von PHP und mySQL.
Nachdem dies erledigt ist, suchen wir die IP des aktuellen Benutzers in der counter_ips anhand seiner IP. Schließlich wollen wir nur neue Besucher zählen.
Finden wir keinen Eintrag mit der Benutzer-IP, erhöhen wir den Counterstand um eins. Zudem speichern wir die neue IP mit der aktuellen Zeit in der counter_ips.
Anschließend löschen wir alle IPs aus der counter_ips, die länger als 24h in der Datenbank waren. Somit werden diese IPs wieder freigegeben.
Nun lesen wir den aktuellen Counterstand aus und speichern seinen Wert in der Variable $aufruf.
Zu guter letzt geben wir den Counterstand mit echo aus.
Fertig.
einfach als counter.php speichern und irgendwo in der eigenen Website einbauen. Das ist alles...
Alles?
Nein... nicht ganz. Ich habe euch noch ein Bild versprochen.
Legt also eine counter_img.php an, in der folgendes steht:
| counter_img.php: | |
1 |
|
Wir erzeugen hier ein Bild der Größe 80x15 Pixel und definieren erstmal drei Farben, je eine für die Schrift, den Hintergrund und den Rahmen. Dann färben wir das Bild mit dem Rahmen und dem Hintergrund. Anschließend schreiben wir den Counterstand, den wir später noch übertragen, auf das Bild und geben es aus.
So einfach ist das.
Um das Bild nun auszugeben, ersetzen wir in der counter.php folgendes (Zeile 24):
| PHP: | |
1 |
|
| PHP: | |
1 |
|
Und fertig ist unser Counter mit Bildausgabe.
War doch halb so schlimm, oder? *gg*
