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: 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.







Archives gérées par MHonArc 2.6.16.

Haut de le page