Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > отфильтровать yandex go.mail и других роботов


Автор: grIeIy 27.3.2006, 14:43
вобщем нужно как то сделать так:
если чел пришёл с яндекса маила гугла яхи и других подобных маших (http_referer), то в строчке пишется "нет", а если в http_referer стоит обычный смертный урл то именно он и выводиться

суть я знаю как сделать, а не знаю как именно фильтровать поисковиков

Автор: Danox 27.3.2006, 14:52
Ну фильтруй методом if, води все поисковники что нужно и если http_referer != поисковник, то води адрес а если равен то нече не делай!

Автор: oksale 27.3.2006, 15:04
 
Код

$agent = $_SERVER["HTTP_USER_AGENT"];
if (eregi("Yandex", $agent) == false) &&
if (eregi("Rambler", $agent) == false) &&
if (eregi("Google", $agent) == false) &&
if (eregi("Aport", $agent) == false) &&
if (eregi("Yahoo",$agent) == false) &&
if (eregi("msn",$agent) == false)
   $is_robot = false;
else
   $is_robot = true;
 

Автор: grIeIy 27.3.2006, 15:54
но обясните ламеру как это вставить в код то?

после
Код

$agent = $_SERVER[”HTTP_USER_AGENT”];
if (eregi(”Yandex”, $agent) == false) &&
if (eregi(”Rambler”, $agent) == false) &&
if (eregi(”Google”, $agent) == false) &&
if (eregi(”Aport”, $agent) == false) &&
if (eregi(”Yahoo”,$agent) == false) &&
if (eregi(”msn”,$agent) == false)
   $is_robot = false;
else
   $is_robot = true;


писать echo $is_robot чтоли?

Автор: Serkys 27.3.2006, 18:17
Цитата(grIeIy @ 27.3.2006, 15:54 Найти цитируемый пост)
но обясните ламеру как это вставить в код то?

Код

//тут код проверки, робот или нет, предложенный выше
if ($is_robot) {
  //тут код, если робот
}
else {
  //тут код, если не робот
};

Автор: grIeIy 27.3.2006, 18:31
пишет
Код

Parse error: parse error in w:\home\webbiz.org.ru\www\dpanel\form_reg.inc.php on line 3

там
Код

if (eregi(”Yandex”, $agent) == false) &&


я не пойму

Автор: skalex 27.3.2006, 18:34
Кавычки подозрительные какие то ...

Автор: Danox 27.3.2006, 18:44
skalex ага они в другой кодировке!

Код


$agent = $_SERVER["HTTP_USER_AGENT"];
if (eregi("Yandex", $agent) == false) &&
if (eregi("Rambler", $agent) == false) &&
if (eregi("Google", $agent) == false) &&
if (eregi("Aport", $agent) == false) &&
if (eregi("Yahoo",$agent) == false) &&
if (eregi("msn",$agent) == false)
   $is_robot = false;
else
   $is_robot = true;

Автор: CyClon 27.3.2006, 19:29
Разве так будет работать?

Код
if (eregi("Yandex", $agent) == false) &&
if (eregi("Rambler", $agent) == false) &&
if (eregi("Google", $agent) == false) &&
if (eregi("Aport", $agent) == false) &&
if (eregi("Yahoo",$agent) == false) &&
if (eregi("msn",$agent) == false)


Я пишу только так:

Код
if (
eregi("Yandex", $agent) == false) &&
eregi("Rambler", $agent) == false) &&
eregi("Google", $agent) == false) &&
eregi("Aport", $agent) == false) &&
eregi("Yahoo",$agent) == false) &&
eregi("msn",$agent) == false)
)


Кто что скажет по этому поводу?

Автор: Danox 27.3.2006, 19:43
скажи как разница?

Автор: grIeIy 27.3.2006, 20:52
и с такими жкавычками такая же ошибка!!!

Автор: Muchenik 28.3.2006, 21:11
CyClon тут скобочки подзабыл.
Цитата

Код

if (
eregi("Yandex", $agent) == false) &&
eregi("Rambler", $agent) == false) &&
eregi("Google", $agent) == false) &&
eregi("Aport", $agent) == false) &&
eregi("Yahoo",$agent) == false) &&
eregi("msn",$agent) == false)
)



Я тоже так делаю.
Код

if (
       (eregi("Yandex", $agent) == false) &&
       (eregi("Rambler", $agent) == false) &&
       (eregi("Google", $agent) == false) &&
       (eregi("Aport", $agent) == false) &&
       (eregi("Yahoo",$agent) == false) &&
       (eregi("msn",$agent) == false)
)
{
      // код
}

Автор: Serkys 28.3.2006, 21:27
Дайте я тоже отмечусь в теме:
Код

if (    
       !eregi("Yandex", $agent) &&    
       !eregi("Rambler", $agent) &&    
       !eregi("Google", $agent) &&    
       !eregi("Aport", $agent) &&    
       !eregi("Yahoo",$agent) &&    
       !eregi("msn",$agent)
)    
{    
      // код    
}

Автор: grIeIy 31.3.2006, 00:13
я вот думаю вообще это не использовать

решил что буду сверять данные из http_referer с данными в файле

но вот только вопрос возник: там у меня будет два блока explode, которые обычно начинаются с $data=file()

они помешают друг другу? или просто в этих блоках взять разные переменные и всё будет работать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)