Objet : Liste pour les discussions techniques (liste à inscription publique)
Archives de la liste
- From: Bertrand Perrier <bertrandperrier AT laposte.net>
- To: Julien Reitzel <julien AT reitzel.info>, Liste APRIL Technique <technique AT april.org>
- Subject: Re: [Fwd: Re: [TECH] besoins d'aide en php - condition]
- Date: Thu, 01 Jan 2009 22:11:18 +0100
Bonjour et bonne année,
visisblement mon code ne marche pas
car j'ai recu 20 visite en 2 jours de google
et mon code n'a pas détecté google
voici mon code
$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))
{
//Le code que les bots ne doivent pas voir
quand je visite ma page ça passe aussi (normal je ne suis pas google) mais par contre
Host of this IP: [? <http://www.ip-adress.com/host>]: crawl-66-249-71-35.googlebot.com
passe aussi
cf. : http://www.ip-adress.com/ip_tracer/?QRY=66.249.71.35
Bertrand
Julien Reitzel a écrit :
Bonjour,
désolé pour le temps que je mets à répondre.
La fonction strpos() renvoie la position de la chaîne recherchée, ou
false si elle n'a pas été trouvée.
Or, si elle renvoie 0 (la chaîne recherchée est tout au début), et qu'on
teste si ce résultat est égal à false, php renverra Vrai.
C'est parce que php est peu typé, 0 est égal à false.
Pour s'assurer que l'on a le même type, il faut vérifier que ces deux
valeurs sont identiques, avec les 3 '='
Comme j'ai l'impression d'être très peu clair, un exemple :
$a == $b Egal TRUE si $a est égal à $b.
$a === $b Identique TRUE si $a est égal à $b et qu'ils sont de
même type (introduit en PHP 4).
Tiré d'ici : http://www.pcinpact.com/forum/index.php?showtopic=88495
Il y a d'autres exemples (avec des objets) sur cette page :
http://www.php.net/manual/en/language.oop5.object-comparison.php
Pour cette même raison, dans votre exemple initial, si l'une des chaînes
à rechercher se trouvait au début de l'user agent, le compteur serait
incrémenté (on peut tester pour s'en convaincre avec $dns =
"googlebot.com";).
La ligne "$trouve = strpos($dns, $bots[$i]) !== false;" peut s'écrire
comme suit avec des parenthèses :
$trouve = ( strpos($dns, $bots[$i]) !== false );
D'abord, on teste si le résultat de strpos() est strictement différent
de false. Puis on place ce résultat dans la variable $trouve (qui sera
donc à true si le résultat de la fonction strpos() est false).
C'est un peu tordu je l'avoue ^^
Mes connaissances en php sont malheureusement trop limitées pour faire
quelque chose de plus lisible.
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], Bertrand Perrier, 01/01/2009
- Message indisponible
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], Bertrand Perrier, 02/01/2009
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], p4bl0, 03/01/2009
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], Bertrand Perrier, 03/01/2009
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], p4bl0, 04/01/2009
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], Bertrand Perrier, 03/01/2009
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], p4bl0, 03/01/2009
- Re: [Fwd: Re: [TECH] besoins d'aide en php - condition], Bertrand Perrier, 02/01/2009
- Message indisponible
Archives gérées par MHonArc 2.6.16.