Moteur de recherche Google
Hors ligneGlougloute Le 20/01/2007 à 21:49 Profil de Glougloute Configuration de Glougloute

I love VIC
Bonjour,
J'aimerais récupérer dans ma base de données les mots qu'ont utilisé les internautes pour accéder à mon site.

J'ai donc fait un table, avec trois champs : id, la page, mot clef


Voici le script que j'ai écrit :



$referer = $_SERVER['HTTP_REFERER'];

if (!empty($referer)){
     $url = $referer;
     $url = trim($url);
     $url = ereg_replace("http://", "", $url);
     $url = ereg_replace("www.", "", $url);
     $url=split("/",$url);
     
     if($url[0]=='google.com'){
     $s = stristr($referer, "q=");
     $pos = strpos($s, "&");
     $key = substr($s, 0, $pos);
     $page = $_GET['id'];
     mysql_query("INSERT INTO spykey VALUES('','$page','$key')");
     }
     
}


Le problème c'est que je me retrouve avec ça dans ma table : q=site%20...+fdfg+gsfg

J'aimerais pouvoir voir dans ma table les mots clefs tels qu'ils ont été écrits.
Avez vous une idée ?


J'ai écrit ce script en plusieurs jours mais la je commence à sécher. Ca ne marche plus :(


Merci d'avance.


PS : si vous avez une idée pour récupérer les mots clefs sur Yahoo et d'autres moteurs de recherche, ça serait bien. Et pourquoi pas l'ajouter sur le site après... :)
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 21/01/2007 à 09:42 Profil de Anthony Configuration de Anthony

Admin
Salut,

utilise la fonction url_decode() pour pouvoir récupérer les mots tels qu'ils ont été entrés. Par contre les eregs sont très vilains.

<?php
if (isset($_GET['id'], $_SERVER['HTTP_REFERER']) AND !empty($_SERVER['HTTP_REFERER']))

     $url explode('/'str_replace(array('http://''www.'), ''trim($_SERVER['HTTP_REFERER']))); 
      
     
if($url[0] === 'google.com')
     
          $key substr(stristr($referer'q='), 0strpos($s'&')); 

          mysql_query('INSERT INTO spykey VALUES("","'.$_GET['id'].'","'.$key.'")'); 
     }
}
?>
--

Hors ligneGlougloute Le 21/01/2007 à 11:59 Profil de Glougloute Configuration de Glougloute

I love VIC
Salut Anthony.

J'ai un petit soucis.
Ton code est parfait (car 15x plus court).

Cependant, la ligne suivante :

$key = substr(stristr($referer, 'q='), 0, strpos($s, '&'));


Ne renvoie rien. Quand je vais un
echo $key;
il n'y a rien qui s'affiche.
J'ai donc repris ce que j'avais codé auparavant en ajouter quelques trucs.

Ca donne ça :


if (isset($_SERVER['HTTP_REFERER']) AND !empty($_SERVER['HTTP_REFERER']))

     $url = explode('/', str_replace(array('http://', 'www.'), '', trim($_SERVER['HTTP_REFERER']))); 
      
      switch ($url[0]){
      case 'google.com':
      case 'google.fr':
      case 'google.be':
      
        $s = stristr($referer, "q=");
          $pos = strpos($s, "&");
          $key = substr($s, 0, $pos);
          
          $key = urldecode($key);
          $key = str_replace("+"," ",$key);
          $key = str_replace("site:","",$key);
          $key = str_replace("www", "", $key);
          $key = str_replace("q=", "", $key);
          $key = str_replace("-", "", $key);
          $key = str_replace(".", "", $key);
          $key = str_replace("com", "", $key);
          $key = trim($key);

          mysql_query('INSERT INTO spykey VALUES("","'.$_SERVER['HTTP_REFERER'].'","'.$key.'")');
     
     break;     
     } 




As tu une solution ?
Merci.
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 21/01/2007 à 12:01 Profil de Anthony Configuration de Anthony

Admin
Tu as quelle version de PHP ?
--

Hors ligneGlougloute Le 21/01/2007 à 12:03 Profil de Glougloute Configuration de Glougloute

I love VIC
Je suis sur OVH avec un 90plan.
Je ne sais pas exactement. :-s
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 21/01/2007 à 12:09 Profil de Anthony Configuration de Anthony

Admin
Demande au support OVH et réponds ici ensuite :)
--

Hors ligneGlougloute Le 07/02/2007 à 21:19 Profil de Glougloute Configuration de Glougloute

I love VIC
Bonjour,
Ma version est PHP4.

C'est grave docteur ?
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 08/02/2007 à 19:38 Profil de Anthony Configuration de Anthony

Admin
Non en fait je m'étais trompé, mais tu peux essayer $key = substr(stristr($referer, 'q='), 0);

:)
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels