Tutorials

Linkcounter-Workshop Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
Linkcounter-Workshop


2134 - Sniper - 02.06.2006 19:31 Uhr - Version: 1 - - verlinken als BB-Code


Nun will ich mal erklären, wie man mit PHP einen Counter realisiert, der die Klicks auf einen Link zählt.

MySQL-Datenbank

Zuerst müssen wir eine Tabelle in deiner MySQL-Datenbank erstellen. Die muss folgende Felder beinhalten:

* ID
* URL
* Counts

Ich nenne die Tabelle einfach mal "counter". Das heißt, dass der Befehl, den du am besten per PHPMyAdmin ausführst so aussehen muss:

1
2
3
4
5
CREATE TABLE `counter` (
 `counter_id` INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY
 `counter_url` VARCHAR(100) NOT NULL,
 `counter_counts` BIGINT NOT NULL
)


MySQL-Angaben

Nun erstellen wir die Datei count.php und du schreibst dort erstmal deine MySQL-Daten rein und dann bauen wir eine Verbindung auf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
// Deine MySQL-Daten
 
$sql_host "Host des MySQL-Servers";
 
$sql_user "Nutzername für MySQL-Server";
 
$sql_pass "Passwort für MySQL-Server";
 
$sql_data "Name der Datenbank";

 if (!
$lid=mysql_connect($sql_host,$sql_user,$sql_pass)) {
  die(
"Datenbank offline!");
 }
 if (! 
mysql_select_db($sql_data,$lid)) {
  die(
"Fehler bei der Auswahl der Datenbank!");
 }
 function 
ssend ($sql) {
  if (! 
$res=mysql_query($sql)) {
   echo (
"Fehler: ".mysql_err());
   break;
  }
  return 
$res;
 }


Damit haben wir zu Beginn direkt eine Verbindung zur Datenbank aufgebaut.

Die Zählung

Wir werden das ganz so lösen, dass die Datei "count.php" die ID der Seite übergeben bekommt, die aufgerufen werden soll. Dazu hängen wir einfach an die "count.php" beim Aufruf "?page=5" oder eben mit der entsprechenden Zahl dann. Damit es nicht zu Fehlern kommt, bauen wir genug Überprüfungen per if ein:

1
2
3
4
5
6
7
8
9
10
if (!$_GET['page']) {
 die("Huppsa! Da fehlt aber was!");
}
$res = ssend("SELECT `counter_url` FROM `counter` WHERE `counter_id` = ".intval($_GET['page']));
if ( mysql_num_rows($res) == 0 ) {
 die("Diese Seite existiert nicht!");
}
$res = mysql_fetch_assoc($res);
$res = ssend("UPDATE `counter` SET `counter_counts` = (`counter_counts` + 1) WHERE `counter_id` = ".intval($_GET['page']));
}


Nun ruft er die zur ID gespeicherte Adresse aus der Datenbank ab, erhöht anschließend den Zählerstand um 1, wenn ein entsprechender Eintrag existiert. Nun fehlt noch die Weiterleitung auf die aufgerufene Seite. Diese wird mit der Funktion "header()" realisiert:

1
2
header("location: ".$row['counter_url']);
?>


Anwendung

So wendest du den Counter dann an: Du schreibst in die Datenbank einen Eintrag mit der URL "http://www.tshw.de" und setzt den Wert für den Zählerstand auf 0. Die ID wird dann automatisch erstellt. Dein Link müsste dann zum Beispiel so aussehen:

1
<a href="count.php?page=1" target="_blank">snipers-page.de</a>


Ausgabe der Counterstände

Um die Counterstände auszugeben müssen wir eine neue Datei anlegen. Ich nenne sie mal c_inc.php. Dort schreiben wir eine Funktion rein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
// Deine MySQL-Daten  $sql_host = "Host des MySQL-Servers";
 
$sql_user "Nutzername für MySQL-Server";
 
$sql_pass "Passwort für MySQL-Server";
 
$sql_data "Name der Datenbank";

 if (! 
$lid=mysql_connect($sql_host,$sql_user,$sql_pass)) {
  die(
"Datenbank offline!");
 }
 if (! 
mysql_select_db($sql_data,$lid)) {
  die(
"Fehler bei der Auswahl der Datenbank!");
 }

 function 
get_c ($page) {
  
$res mysql_query("SELECT `counter_counts` FROM `counter` WHERE `counter_id` = $page");
  if (
mysql_num_rows($res) == 0) return false;
  
$res mysql_fetch_assoc($res);
  return 
$res['counter_counts'];
 }
?>


Diese Datei wird dann in die Dateien, in denen Counterstände abgefragt werden sollen mit der Funktion include() eingebunden.

1
2
3
4
5
<?php
 
include("c_inc.php");
 echo (
"<a href="counter.php?page=1" target="_blank">snipers-page.de</a>");
 echo (
" (Aufrufe: ".get_c(1)".)");
?>


Tutorial (c)2006 by www.snipers-page.de

Viel Spaß beim Zählen!

Mitglieder-Kommentare


Es sind leider noch keine Einträge vorhanden!

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

Melde dich doch ganz einfach an, es ist kostenlos. :-)