Klick auf URL zählen
W3C
- php
0 rolfrost0 Christian Seiler0 W3C0 Christian Seiler0 W3C0 Christian Seiler0 W3C
Hallo Forumer,
ich würde gerne die Anzahl der Klicks die auf einen Link getätigt wurden zählen... also so eine Art Counter mit PHP natürlich... gäbe es da eine knappt aber trotzdem gute Lösung ? die Klicks sollen dann am Ende in Form von Zahlen ausgewertet werden.
[url:http://www.gamestar.de/aktuell/gsbabes.php] hier so in der Art soll es dann am Ende aussehen... wäre echt toll wenn ihr das wissen würdet...
naja... ich würd mich über Antworten freuen...
MFG
W3C
hi,
ich würde gerne die Anzahl der Klicks die auf einen Link getätigt wurden zählen... also so eine Art Counter mit PHP natürlich... gäbe es da eine knappt aber trotzdem gute Lösung ? die Klicks sollen dann am Ende in Form von Zahlen ausgewertet werden.
[url:http://www.gamestar.de/aktuell/gsbabes.php] hier so in der Art soll es dann am Ende aussehen... wäre echt toll wenn ihr das wissen würdet...
nein es wird am Ende anders aussehen:
http://domain.tld/cgi-bin/script?url=http://oddo.de
Damit das Script auch zählen tut muss es den QUERY_STRING parsen und dann einen redirect machen...
Viele Grüße, Rolf
Hallo W3C,
ich würde gerne die Anzahl der Klicks die auf einen Link getätigt wurden zählen...
Du schreibst eine Datei views.php, die als Parameter eine ID akzeptiert. Zu dieser ID wird aus einer Datenquelle die passende URL geholt, dort ein Counter um 1 hochgesetzt und dann wird der Browser weitergeleitet.
Beispiel: (unter Verwendung einer Datenbank)
Du rufst die Datei über views.php?link=68 auf.
In Deiner Tabelle steht folgendes:
+-----+------------------------------+-------+
| id | url | views |
+-----+------------------------------+-------+
| ... | ... | ... |
| 67 | http://selfhtml.teamone.de/ | 60 |
| 68 | http://forum.de.selfhtml.org/ | 78 |
| ... | ... | ... |
+-----+------------------------------+-------+
Du holst Dir in der views.php als erstes mit einer Abfrage die URL und dann führst Du eine zweite Abfrage durch, die die Anzahl der Views um eins hochsetzt. Dann leitest Du per Header ('Location: ' . $url); weiter. (wobei in $url die Url aus der Datenbank steht)
Viele Grüße,
Christian
Hi,
mir ist noch unklar wie ich das mit der Datenbank machen soll... wo soll die Tabelle eingefügt werden ?
MFG
Vanel
Hallo W3C,
mir ist noch unklar wie ich das mit der Datenbank machen soll... wo soll die Tabelle eingefügt werden ?
Ich verstehe die Frage nicht ganz, daher eine Gegenfrage: Wieviel Wissen über Datenbanken besitzt Du?
Viele Grüße,
Christian
Hi,
ich besitze gar kein Wissen über Datenbanken ich besitze gerade mal Wissen über ein paat PHP Befehle...
Deshalb wäre es nett wenn du mir noch mal eine Nähere Erleuterung gibst was es mit diesen Tabellen auf sich hat... also MySQL ist bei mir installiert... nur wie ich damit umgehen weis ich net... mit dem PHP-Script komme ich klar aber der Grundsazt für einen Counter ist ja diese Tabellen und die kann ich nicht...
Würde mich um eine Erklärung sehr freuen...
MFG
W3C
Hallo W3C,
ich besitze gar kein Wissen über Datenbanken ich besitze gerade mal Wissen über ein paat PHP Befehle...
Gut, dann weiß ich wo ich anfangen kann.
Deshalb wäre es nett wenn du mir noch mal eine Nähere Erleuterung gibst was es mit diesen Tabellen auf sich hat...
In einer Datenbank kann man Informationen in tabellarischer Form speichern. Du definierst vorher, welche Spalten diese Tabelle hat. Danach kannst Du mit sog. SQL-Abfragen die Daten in dieser Tabelle auslesen, ändern, löschen oder auch neue Datensätze hinzufügen.
Schau Dich mal auf http://tut.php-q.net/mysql.html um, dort gibt es in der linken Spalte mehrere Tutorials, die alle mit MySQL anfangen, zu diesem Thema. Wenn Du dort etwas nicht verstehst, kannst Du natürlich gerne hier nochmal fragen.
In Deinem Beispiel für den Counter würdest Du als erstes eine Tabelle counter anlegen:
mysql> create table counter (id INT NOT NULL PRIMARY KEY auto_increment, url VARCHAR(255), count INT);
Query OK, 0 rows affected (0.01 sec)
Dann würdest Du alle Links, die Du haben willst, in die Datenbank einfügen:
mysql> insert into counter (url, count) VALUES ('http://selfhtml.teamone.de/', 0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into counter (url, count) VALUES ('http://selfaktuell.teamone.de/', 0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into counter (url, count) VALUES ('http://forum.de.selfhtml.org/', 0);
Query OK, 1 row affected (0.00 sec)
Du kannst dann erst einmal sehen, wie die Tabelle daraufhin aussieht:
mysql> select * from counter ;
+----+--------------------------------+-------+
| id | url | count |
+----+--------------------------------+-------+
| 1 | http://selfhtml.teamone.de/ | 0 |
| 2 | http://selfaktuell.teamone.de/ | 0 |
| 3 | http://forum.de.selfhtml.org/ | 0 |
+----+--------------------------------+-------+
3 rows in set (0.02 sec)
Wenn Du nun folgendes SQL-Statement von PHP an MySQL weitergibst, dann erhälst Du als Ergebnis die URL, die sich hinter der ID verbirgt, die über den URL-Parameter id übergeben wird: (vorher sollte natürlich die MySQL-Verbindung bereits aufgebaut sein, dazu siehe den Link)
$query = "SELECT url FROM counter WHERE id = '".mysql_escape_string($_GET['id'])."'";
$result = mysql_query ($query);
if ($result === false) {
// fehler - meldung ausgeben
exit; // oder etwas ähnliches
}
$row = mysql_fetch_array ($result);
if ($row === false) {
// id existiert nicht - meldung ausgeben
exit; // oder etwas ähnliches
}
Da Du nun weißt, dass die ID existiert, kannst Du die Anzahl bei dieser ID erhöhen:
$query = "UPDATE counter SET count = count + 1 WHERE id = '".mysql_escape_string($_GET['id'])."'";
$result = mysql_query ($query);
if ($result === false) {
// fehler - meldung ausgeben
exit; // oder etwas ähnliches
}
Nun kannst Du mit der Header-Funktion eine Weiterleitung senden:
Header ('Location: ' . $row['url']);
Viele Grüße,
Christian
Hallo,
ich habe mir alles durchgelesen doch weiss immer noch nicht wo ich denn alle Befehle einfügen soll.... soll ich diese in eine PHP-Datei einfügen ? das hab ich mal ausprobiert da kam dann folgende Fehlermeldung:
Parse error: parse error, unexpected T_STRING in c:...\counter.php on line 18
da muss irgendetwas nicht stimmen.... also soll ich die MySQL-Abfragen in eine gewöhnliche PHP-Datei einfügen oder in etwas anderes...
Würde mich freuen wenn du trotzdem antworten würdest...
MFG
W3C