Forum: PC-Programmierung PHP Skript zum Zählen der Klicks auf einer Seite


von sunshineh (Gast)


Lesenswert?

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.

von Sven B. (scummos)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?

@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
Noch kein Account? Hier anmelden.