Accéder au contenu.
Menu Sympa

technique - Re: [Fwd: Re: [TECH] besoins d'aide en php - condition]

Objet : Liste pour les discussions techniques (liste à inscription publique)

Archives de la liste

Re: [Fwd: Re: [TECH] besoins d'aide en php - condition]


Chronologique Discussions 
  • From: jreitzel AT april.org
  • To: technique AT april.org
  • Subject: Re: [Fwd: Re: [TECH] besoins d'aide en php - condition]
  • Date: Thu, 18 Dec 2008 22:42:41 +0100

Bonsoir,

J'arrive certainement un peu tard, mais je tente quand même.

J'aurais écrit votre code, plutôt de la façon suivante :

$dns = $_SERVER['HTTP_USER_AGENT'];
$bots = array();
$trouve = false;

$bots[] = "sv.av.com";
$bots[] = "x1crawler";
$bots[] = "googlebot.com";
$bots[] = "lycos.com";
$bots[] = "inktomisearch.com";

for( $i=0 ; $i<sizeof($bots) && !$trouve ; $i++ )
{
$trouve = strpos($dns, $bots[$i]) !== false;
}

if( !$trouve )
{
//Incrémenter le compteur
}


Ce n'est pas encore très propre, mais ça permet d'ajouter ou de retirer des
bots plus simplement.


Par contre, le 'user agent' peut-être modifié par le visiteur, comme
indiqué sur la page wikipédia à laquelle vous faisiez référence. Il vaut
donc mieux utiliser l'adresse ip ou le host name pour plus de fiabilité.

Mais il est sûr qu'en l'occurence, ce n'est pas très important pour ces
statistiques, et ça n'a pas plus d'intérêt pour l'utilisateur de se faire
passer pour un bot.


Julien Reitzel.




Bertrand Perrier :

Bonjour,

je vai tester la fonction gethostbyaddr mais il y a aussi la fonction
$_SERVER['HTTP_USER_AGENT']
qui donne aussi des info sur le visiteur

quand je test la valeur de $_SERVER['HTTP_USER_AGENT'] en local j'ai
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/2008111318
Ubuntu/8.10 (intrepid) Firefox/3.0.4

d'aprés http://www.siteware.ch/webresources/useragents/spiders/google.html
$_SERVER['HTTP_USER_AGENT'] me renvoie
Googlebot/1.0 (googlebot AT googlebot.com http://googlebot.com/)

d'aprés http://fr.wikipedia.org/wiki/User-Agent#Php
$_SERVER['HTTP_USER_AGENT'] me renvoie
Googlebot/2.1 (+http://www.google.com/bot.html)

donc je n'ai pas les même retour suivant les sites


il me faudrai une fonction qui recherche un mot dans une chaine de mots, je
trouve strpos

voici le code que j'ai trouvé puis modifié

$dns = $_SERVER['HTTP_USER_AGENT'];
$scooter=strpos($dns,"sv.av.com");
$voilabot=strpos($dns,"x1crawler");
$googlebot=strpos($dns,"googlebot.com");
$lycosbot=strpos($dns,"lycos.com");
$inktomi=strpos($dns,"inktomisearch.com");
if (($scooter==false) && ($voilabot==false) && ($googlebot==false) &&
($lycosbot==false) && ($inktomi==false))
{
//Incrémenter le compteur
}

merci beaucoup, je ne connaissai pas la valeur $_SERVER['HTTP_USER_AGENT']

Bertrand





Archives gérées par MHonArc 2.6.16.

Haut de le page