У меня есть страница index.php, и у меня есть скрипт для обнаружения бота, но он не работает должным образом. Если бот посещает index.php, то я хочу, чтобы welcome.php был включен. Если это оригинальный пользователь, то welcome.php не должен быть включен.
Это то, что я пробовал до сих пор:
function is_bot(){
$botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi",
"looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory",
"Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot",
"crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp",
"msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz",
"Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot",
"Mediapartners-Google", "Sogou web spider", "WebAlta
Crawler","TweetmemeBot", "Butterfly", "Twitturls", "Me.dium",
"Twiceler", "Purebot", "facebookexternalhit",
"Yandex", "CatchBot", "W3C_Validator", "Jigsaw","PostRank",
"Purebot", "Twitterbot",
"Voyager", "zelist", "pingdom", "favicon");
foreach($botlist as $bot){
if(strpos($_SERVER['HTTP_USER_AGENT'],$bot)!==false)
return true; // Is a bot
}
return false; // Not a bot
}
Вот основная проблема, которую я получаю — следующее не сработало:
if (is_bot()==true) {
session_destroy(); include_once('welcome.php'); exit; }
Затем я попробовал это, но это также не сработало:
if (is_bot()) {
session_destroy(); include_once('welcome.php'); exit; }
Посоветуйте, пожалуйста, какие-либо решения для этой ситуации.
Всякий раз, когда я использую, как это работает
if (is_bot())
$isbot = 1;
else
$isbot = 0;
Лучше улучшить вашу функцию is_bot и использовать регулярное выражение вместо долгого беспокойного поиска.
Нечто подобное ниже может быть более полезным.
function is_bot(){
preg_match('/bot|curl|spider|google|twitter^$/i', $_SERVER['HTTP_USER_AGENT'], $matches);
return (empty($matches)) ? false : true;
}
Я уверен, что проблема в том, что код делает работа (хотя плохо оптимизирована и отформатирована — @Имранрешение намного чище) но вы тестируете его неправильно.
Ваш Строка UA не содержит строку «bot» — вы не сервер. Используйте инструмент разработки Google Chrome, вот так;
F12
CTRL + СДВИГ + M
UA коробка наверху
и измените свою строку UA, притворившись кем-то другим, например, «Googlebot», а затем проверить его.
Просто посещая веб-сайт и переходя к своему, не имитируйте «запрос бота» с этого веб-сайта, это все же только вы!