25.8. Wie kann ich zählen, wie oft auf einen Link geklickt wurde?Antwort von Martin JansenDem 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. |
||
25.8. Wie kann ich zählen, wie oft auf einen Link geklickt wurde? http://www.php-faq.de/q/q-code-klick-zaehler.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |