2016-08-03 1 views
1

J'ai fait un site Web de suivi en php qui suit le nombre de clics sur un lien spécifique - pour le suivi des liens d'affiliation. ce que je fais est:Suivi du nombre de clics sur un lien - php

Quand un utilisateur clique sur un lien fourni par mon site Web, il va à mon site Web qui après l'enregistrement de son adresse IP redirige l'utilisateur à une autre adresse mappée à l'utilisateur de lien cliqué. Un compteur incrémente le nombre de clics après la validation de l'adresse IP. Le problème auquel je suis confronté est que lorsque je compare le nombre de clics sur mon site et celui des résultats de facebook, mon résultat est plusieurs fois plus. Je ne sais pas quelle est la cause de cela.

résultats: Mes

enter image description here

résultats Facebook:

enter image description here

enter image description here

ma question est que pourquoi est-il une différence? Si Facebook a des contrôles supplémentaires, quelqu'un sait ce qu'ils sont? ou sont-ils privés? ou facebook réduit juste le nombre de clics?

L'aide serait vraiment appréciée. Je suis coincé ici.

Voici mon code pour vérifier les visiteurs ip et incrémenter le compteur clic:

<?php 
require_once "dbdata.php"; 

if(isset($_GET['linkid']) && !empty($_GET['linkid'])){ 


$id = $_GET['linkid'];   //getting link id to fetch data from database 
$ip = $_SERVER['REMOTE_ADDR']; // getting visitors ip address 

//database connection 
@$db = new mysqli(hostname,username,password,dbname) or die(json_encode(array("status"=>"Can not connect (Database Connection Error)"))); 


    //getting data from table 
    $query = "select * from links_shared where id = $id ;"; 
    $result_link = $db -> query($query) or die(json_encode(array("status"=>"Error Fetching previous income data"))); 
    $row_link = $result_link-> fetch_assoc(); 

    $link = $row_link['orignal']; //the link to be redirect the user to 

    header("Location:".$link); //redirected 

    if($row_link['status'] == "live"){ //status of link should be live 


    $array_ip = explode(",", $row_link['ip']); //comma sepearted string of ips to array 

    if(!in_array($ip, $array_ip)){ //check if ip is not already present 

     $query = "select * from links_deleted where url = '$link' ;"; //getting block list 
     $result_del = $db -> query($query) or die(json_encode(array("status"=>"Can not select deleted"))); 

     if($result_del -> num_rows <1){ //check if link not in block list 

      $concat = ",".$ip; 
      echo $query = "update links_shared set clicks = (clicks + 1), ip = concat(ip,'$concat') where id= $id; "; 
      $result_update = $db -> query($query) or die(json_encode(array("status"=>"can not update clicks"))); 
     } 

    } 

    } 

} 
?> 

Répondre

2

Soit facebook est invalidante clics qui accepte votre script (par exemple: les adresses IP non fiables, les adresses IP répétées, la détection automatique de bot ...) ou plus simplement facebook ne voit que les clics de sa plateforme mais votre script reçoit tous les clics de partout.

Bien sûr, il pourrait aussi y avoir un problème avec votre script, mais puisque vous ne l'affichez pas, je ne peux pas résoudre ce problème. Puis-je vous montrer le script en éditant la question?

+0

merci pour la réponse :) – hamza

+0

@hamza vous pouvez l'ajouter à votre question et quelqu'un pourrait repérer quelque chose qui vous aide à l'améliorer. – BeetleJuice

+0

Je vais sûrement ... thnx ....... – hamza