Hallo Jessi, trotz langer Debatten ist Dein Problem wohl nicht gelöst.
Da der Server "http://www.dclp-faq.de/q/q-code-klick-zaehler.html" z. Zt. nicht erreichbar ist, maile ich Dir den kompletten Code:
de.comp.lang.php.* FAQ
25.8. Wie kann ich zählen, wie oft auf einen Link geklickt wurde?
Keywords: Link | Counter
Antwort von Martin Jansen
Dem Skript liegt folgende Struktur der MySQL-Tabelle zugrunde:
mysql> describe counter;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | | PRI | 0 | auto_increment |
| url | char(255) | | | | |
| count | int(11) | | | 0 | |
+-------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Das Feld url enthält die URL, die aufgerufen wird. Das Feld count enthält die Anzahl der Klicks auf url.
<?php
// Zugangsdaten fuer die Datenbank
// Diese sollten der Sicherheit halber
// in ein Verzeichnis außerhalb des
// Document-Root ausgelagert werden.
$host = "localhost";
$user = "user";
$pass = "demo_password";
$datab = "demo_db";
$table = "counter";
// Die per GET übergebene URL einlesen und datenbanksicher machen
$url = addslashes($_GET['url']);
// Verbindung zum MySQL-Server aufbauen
$db = @mysql_connect($host, $user, $pass);
if ($db) {
if (@mysql_select_db($datab, $db)) {
// Eintrag fuer die übergebene URL um 1 erhöhen.
$query = "UPDATE $table SET count = count + 1 WHERE url = '$url'";
$result = @mysql_query($query);
// Noch kein Eintrag für die URL vorhanden?
if (mysql_affected_rows() == 0) {
$sql_insert = "INSERT INTO $table (url, count) VALUES ('$url', '1')";
@mysql_query($sql_insert);
}
}
}
// Auf übergebene URL weiterleiten
Header("Location: " . $_GET['URL']);
?>
Anwendungsbeispiel:
<a href="count.php?url=http://www.martin-jansen.de">Link</a>
Als Parameter für die Datei count.php wird die URL übergeben, auf die weitergeleitet werden soll. In count.php wird nun der Datensatz in der Tabelle, der $url als Wert für das Feld url enthält um 1 erhöht und es wird auf die neue URL weitergeleitet.
Viele Grüsse martin