J'ai un script qui doit rediriger vers la page 403 si l'agent utilisateur est égal à des variables, mais sinon - doit afficher la page normale. Au lieu de cela, le script n'affiche qu'une page vierge et c'est tout. Veuillez m'aider à résoudre mon problème ou ce que je fais mal.
Voici le script:
<?php //-- Get user agent //-- Thanks @creditosrapidos10min for hint about strtolower() $useragent = strtolower($_SERVER['HTTP_USER_AGENT']); //-- BadBot variable $Baiduspider = stripos($useragent, "Baiduspider"); $DotBot = stripos($useragent, "DotBot"); //-- BadBot constant $BADBOT = ($Baiduspider||$DotBot); if ($agent == $BADBOT){ header("Location: ohno/403.php"); exit; } else { ?> Display home page <?php }?>
4 Réponses :
Vous utilisez stripos
sur $ useragent
mais vous n'avez pas défini $ useragent
, vous avez uniquement défini $ agent
. Essayez de corriger cela et réessayez.
désolé .. mon erreur .. je la change ... mais je ne résous toujours pas mon problème (
Essayez avec $ HTTP_SERVER_VARS au lieu de $ _SERVER, afin de ne pas avoir de problèmes avec les variables globales.
Sinon, essayez avec strtolower:
<?php //-- Get user agent $useragent = strtolower($_SERVER['HTTP_USER_AGENT']); //-- BadBot variable $Baiduspider = stripos($useragent, "baiduspider"); $DotBot = stripos($useragent, "dotbot"); //-- BadBot constant $BADBOT = ($Baiduspider||$DotBot); if ($agent == $BADBOT){ header("Location: ohno/403.php"); exit; } else { ?> Display home page <?php }?>
merci beaucoup mais toujours pas d'effet ... il suffit de rediriger tous les agents utilisateurs vers la page 403 (.. vous pouvez le voir sur sauna.ho.ua/badbot.php
Je pense que vous avez utilisé $ user
au lieu de $ user_agent
.
Et selon le manuel php manuel php sur stipos vous devriez utiliser triple = like ===.
Voici un exemple de comment cela devrait être .
<?php //-- Get user agent //-- Thanks @creditosrapidos10min for hint about strtolower() $useragent = strtolower($_SERVER['HTTP_USER_AGENT']); //-- BadBot variable $Baiduspider = stripos($useragent, "Baiduspider"); $DotBot = stripos($useragent, "DotBot"); //-- BadBot constant $BADBOT = ($Baiduspider||$DotBot); if ($useragent === $BADBOT){ header("Location: ohno/403.php"); exit; } else { ?> Display home page <?php } ?>
non ... === ne fonctionne pas .. car après === doit être faux ou vrai ... dans mon exemple, il doit être == ... Tank you for answer ...