HTTP_REFERER и eregi

  • Автор темы Автор темы WMix
  • Дата начала Дата начала

WMix

герр M:)ller
Партнер клуба
HTTP_REFERER и eregi

PHP:
$referer=getenv("HTTP_REFERER");
echo $referer;??
if (!eregi("^http://www.domen.ru",$referer) || !eregi("^http://domen.ru",$referer))
echo "error";
else
echo "ok";

выходит всегда error
где собака порылась???
 
у тебя не правильно написано echo
нужно так :
echo "$referer";
 
2 Nicolas: все правильно написано.
2 WMix: У тебя условие в ифе неправильное - поставь and вместо or
 
Nikolas:
перед тем, как писать в форум, надо думать.
что за знаки вопроса там у него - неизвестно, но насчет "надо" - ты неправ.

Wmix:
вдумайся в логику кода:
если текст не подходит под шаблон 1 ИЛИ текст не подходит под шаблон 2, то ошибка.
это ИЛИ становится причиной того, что условие никогда не будет true - текст у тебя не может подходить под два шаблона одновременно.
 
если ты о вопросах ты прав //echo $referer;??
если о кавычках то нет
 
Nikolas, не надо пороть чушь.

WMix
1. думай над логическими выражениями
2. не надо использовать регулярные выражения там, где они не нужны, тем более ereg
 
Приношу извинения, не сразу заметил, то о чем он спрашивал, просто код заработал после того как я и справил эту строку, а то что он error в коде сам пишет не разглядел...
Впредь буду повнимательнее
 
PHP:
$referer=getenv("HTTP_REFERER"); 
echo $referer;?? 
if (eregi("^http://www.domen.ru",$referer) || eregi("^http://domen.ru",$referer)) 
echo "ok";
else 
echo "error";

c && в if тоже не пошло но я изменил так всё работает
спасибо

а это
if (!eregi("^http://www.domen.ru",$referer) || !eregi("^http://domen.ru",$referer))
echo "error";
в натуре прогнал
 
2Georgy
-----------------------------------------------------------
str_str($referer,'http://'.$domain)

AND Demiurg

2. не надо использовать регулярные выражения там, где они не нужны, тем более ereg
-----------------------------------------------------------

а почему??
 
str_str($referer,'http://'.$domain) || str_str($referer,'http://www'.$domain))

под это подойдёт и
http://www.pupkin.com/site.php?4dumm_program_http://domain.ru

у меня стоит "^http//...
 
strncmp($referer , 'http://'.$domain , strlen('http://'.$domain))

ps под твой пример подойдет http://wwwsdomain.ru
 
PHP:
$referer=getenv("HTTP_REFERER"); 
$domain[0]='http://domain.ru'; 
$domain[1]='http://www.domain.ru'; 
  if ($domain[0] == substr($referer,0,strlen($domain[0])) || $domain[1] == substr($referer,0,strlen($domain[1]))) { 
    print 'OK'; 
  } 
  else { 
    print 'BAD DOMAIN'; 
  }

--- вот тебе пожалуйста, без экспов и точно будет проверять
 
Сверху