Hallo, ich suche ein Skript, dass auf meiner Internetseite zählt, welche Links wie oft angeklickt werden. Ich habe mehrere Skripte gefunden, die die Klickzahlen der jeweiligen Seite zählt, aber keines, das die der Links zählt.
Das liegt daran dass das mit PHP nicht geht. Der Server kriegt ja nichts davon mit, wenn der Benutzer auf einen Link klickt (außer der geht wieder auf deine Webseite). Du kannst dafür sowas wie Google Analytics benutzen, das hat so Features.
Es gibt 2.5 möglichkeiten: 1) Ändere die links von http://url nach DeinCounterScript.php?goto=http://url und mache im php script eine weiterleitung per location header: header("location: ".$_GET['goto']) 2) Fange mit js die clicks auf die Links ab. Auszug aus meiner Webseite:
1 | addEventListener("click",function(event){ |
2 | var target = event.target; |
3 | |
4 | while(!( |
5 | target instanceof HTMLAnchorElement |
6 | || target instanceof HTMLAreaElement |
7 | ) && ( |
8 | target = target.parentElement |
9 | )); |
10 | if(!target) |
11 | return true; // not a link |
12 | |
13 | if( location.origin == target.origin ){ |
14 | if(handleInternalLinkClick(target)) |
15 | return true; |
16 | }else{ |
17 | if(handleExternalLinkClick(target)) |
18 | return true; |
19 | } |
20 | event.preventDefault(); |
21 | return false; |
22 | },true); |
2.a) Leite externe Links mit js nach DeinCounterScript.php?goto=http://url um. 2.b) oder Rufe DeinCounterScript.php mit AJAX auf. PS: DeinCounterScript.php benötigt mechanismen um Manipulationen zu Erkennen, da dieses auch manuell aufgerufen werden kann.
Daniel A. schrieb: > DeinCounterScript.php?goto=http://url Wenn das Counter-Script dann den URL-Parameter naiv speichert und naiv in die Seite mit der Auswertung aller geklickten Links einbaut, hat man ein wunderschönes Beispiel für XSS.
@Tom Ja, aber wer ist schon so naiv das er dass ohne htmlentities() macht?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.