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