Перенаправление заголовка, если пользовательский агент равен переменным с использованием PHP - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть скрипт, который должен перенаправить на страницу 403, если пользовательский агент равен переменным, а если нет - должен отображать обычную страницу.Вместо этого скрипт отображает только пустую страницу и все.Пожалуйста, помогите мне решить мою проблему или что я делаю неправильно.

Вот сценарий:

<?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 ]

0 голосов
/ 07 февраля 2019

Работает в моем браузере!может быть, это не код вашего браузера?я использую браузер Opera enter image description here

0 голосов
/ 07 февраля 2019

Попробуйте использовать $ HTTP_SERVER_VARS вместо $ _SERVER, чтобы не было проблем с глобальными переменными.

Если нет, попробуйте с 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 }?>
0 голосов
/ 07 февраля 2019

Я думаю, что вы использовали $user вместо $user_agent.

И в соответствии с руководством по php Руководство по php для stipos вы должны использовать triple = like ===.

Вот пример того, как это должно быть.

<?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 }
    ?>
0 голосов
/ 07 февраля 2019

Вы используете stripos на $useragent, но вы не определили $useragent, вы только определили $agent.Попробуйте исправить это и попробуйте снова.

...