Probleme très étrange : mysql & adsense

  • Auteur de la discussion Auteur de la discussion doom
  • Date de début Date de début
WRInaute discret
Bonsoir à tous,

Voilà, je suis en train de rencontrer un problème très étrange.
En effet, je suis en train de modifier quelque peu mon site, et j'ai donc fait un tout petit script php permettant d'insérer dans une table mysql le champ demandé
voici le script :
Code:
<?php 
$titre = $_GET['film'];
$date = date("Y-m-d h:i:s");

$db = mysql_connect('localhost', 'login', 'pass')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('NOMDELABASE',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql 
    $sql = "INSERT INTO recherche VALUES('$titre','$date')";
	
	// on envoie la requête 
    $req = mysql_query($sql);

mysql_close();	
?>

J'ai donc intégré ce script dans le haut de ma page recherche.php

Et après avoir testé avec des url bidon du genre recherche.php?film=toto ; je me retrouve dans ma base avec 2 insertions toto.

Après avoir tenté d'isoler le problème, je me rend compte qu'en enlevant mes 2 pubs adsense sur cette page, le problème disparaît, et le script insère bien qu'une fois le champ film.

Etonnant non?

Comment résoudre ce problème qui commence à être assez gênant et qui m'empêche de continuer à améliorer mon site.

Merci d'avance de votre aide
 
WRInaute discret
a oui pas bête du tout, surtout que il y a toujours 1 voir 2 secondes d'ecart entre les insertions; mais il est rapoide dis donc ce robot!
Comment empêcher le robot adsense de faire cette insertiont? je suis pas super bon en php et là je suis perdu!
 
WRInaute accro
pour tester, insére dans ta base de données toutes les infos que tu peux récolter du visiteur (IP, user-agent, ...)

tu virera ces champs apres, mais c juste pour voir
on sait jamais ;)
 
WRInaute discret
oui c'est bien ça tu avais raison bien vu :d

toto | 2006-07-12 10:55:15 | 82.241.*.* (mon ip)
toto | 2006-07-12 10:55:16 | 66.249.65.106 (robot adsense)

donc maintenant que faire pour éviter que le robot ne puisse exécuter la requete?
 
WRInaute discret
c'est bon je crois avoir trouvé :

Code:
if ($_SERVER['REMOTE_ADDR']!='66.249%')
    {
    // on se connecte a la base
    $db = mysql_connect('localhost', 'login', 'pass')  or die('Erreur de connexion '.mysql_error());

    // sélection de la base  
    mysql_select_db('nombdd',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql d'insertion
    $sql = "INSERT INTO recherche VALUES('$titre','$date','$ip')";
	
	// on envoie la requête 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    mysql_close();	
	}
Le seul truc que je me demande, c'est est-ce que les robots adsense ont d'autres plages d'ip?
 
WRInaute discret
le problème semble venir de
Code:
'66.249%'
car lorsque je met 66.249.65.106 ca fonctionne;
quelle est la synthaxe pour inclure toutes les adresse ip commençant par 66.249
 
WRInaute impliqué
Pour ne pas t"embeter avec les ip, tu peux tester si le user-agent n'a pas la chaine "Google", cela devrait aller. :)
Code:
Google Bot : Googlebot/2.1 (+https://www.google.com/bot.html)
Google Adsense : Mediapartners-Google/2.1
 
Discussions similaires
Haut