vespa Posté 7 Juin 2005 Partager Posté 7 Juin 2005 Bonjour, J'ai placé un script pour bloquer l'acces à mon site pour des visiteurs ayant fait une recherche sur une requete précise sur google . Ce script fonctionne mais parfois pour des requetes avec plusieurs mots il déclanche le blocage alors qu'il ne devrait pas. Pouvez vous m'aider svp... // Regexp pour matcher http://www.google.xxx/ ou http://www.google.co.xx/ $google_str = '/^http:\/\/www.google\.([a-z]{2,3})|(co\.[a-z]{2})\//i'; // Si le visiteur viens d'une page googleif ( preg_match( $google_str,$_SERVER['HTTP_REFERER']) ) { // on récupère le QUERY_STRING du REFERER $url_array = parse_url($_SERVER['HTTP_REFERER']); parse_str($url_array['query'],$variables); // les mots cl se trouvent dans la variable 'q' $keywords = urldecode($variables['q']); $pos = strpos($keywords, "test",0); if ($pos >= 0) { Header("Location: http://www.monsite.com/no.html"); exit; }} Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Juin 2005 Partager Posté 7 Juin 2005 Salut Vespa, Le résultat de la fonction strpos doit toujours être analysé avec circonspection vu qu'elle peut retourner 0 ou false selon que la position est en début de chaîne ou que la recherche n'a pas abouti. Et dans ton test, le false est égal à 0... Il n'est donc pas recommandé de tester cette valeur par rapport au nombre zéro. A ta place je mettrais if($pos !== false) au lieu de if($pos >= 0) Dan PS: notes bien le !== au lieu de != , les deux == sont importants. Lien vers le commentaire Partager sur d’autres sites More sharing options...
vespa Posté 7 Juin 2005 Auteur Partager Posté 7 Juin 2005 Je viens d'essayer et cela à l'air de bien fonctionner Merci Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant