Как точно определить браузер средствами PHP.

maxru

МИФИст
Как точно определить браузер средствами PHP.

Совершенно недавно узнал о таком сайт (или группе сайтов), как http://jacklewis.net .
Прежде чем читать дальше рекомендую попробовать ознакомиться с содержимым этого блога с помощью броузера Firefox.
"Попробовать" - это потому, что ознакомиться с содержимым данного сайта у вас не получится - вас автоматически перенаправят на сайт http://whyfirefoxisblocked.com/, где написано, что броузер блокирован, т.к. у него есть плагин, который блокирует рекламу и тем самым пользователи данного броузера "обворовывают авторов сайтов" (бяки какие).

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

Сразу скажу - мое мнение - интернет должен быть открытым для ВСЕХ пользователей. Если группа товарищей ненавидит FF (а это видно по ссылкам на сайте http://whyfirefoxisblocked.com/), то это должно остаться их проблемой.

У меня сразу возникли мысли о замене user-agent, ибо на вышеупомянутом сайте приводятся методы блокировки FF.
Например такой:
PHP:
<?
$userAgent=strtolower($_SERVER['HTTP_USER_AGENT']);
if(strstr($userAgent, 'firefox'))
  {
    header("Location: [url]http://whyfirefoxisblocked.com[/url]");
    exit();
  }
?>
Я легко сменил User-Agent в настройках FF, но меня все так же отсылали.
Тогда я решил сверить Headers, которые отсылает FF и, например IE 7.
Сверив, увидел некоторые различия, по которым теоретически можно было отличить броузеры.
От всех отличий FF от IE мне удалось избавиться с помощью плагина "Modify Headers" для FF.
От всех, кроме одного: CACHE-CONTROL. Firefox все равно прибавляет к cache-control: no-cache, max-age=0

Как мне кажется, именно по этой подстроке и ищет скрипт на сервере признаки FF.

Или есть еще и другие способы определения броузера (javascript, определяющий броузер на вышеупомянутом сайте я не отыскал)?
Я не спрашиваю, как обмануть, я интересуюсь: а в принципе, какие еще способы определения броузера есть в арсенале разработчика, кроме тех, что я упомянул?

-~{}~ 26.08.07 01:24:

Дополнение:
Я был невнимателен, когда искал скрипт в коде страницы.
Вот он:
<script>
if(!document.all){window.location='http://whyfirefoxisblocked.com/';}
</script>
Отсюда просьба: перенесите тему в оффтопик или закройте.
 

dimagolov

Новичок
maxru, это у них JavaScript-ом делается. Но кроме того они User-Agent проверяют, не без этого. Правда, GrangParediso они FF не считают, но и смотреть сайт без JavaScript-а не дают, хотя если не позволять ему догрузиться полностью, то <noscript> не отрабатывает и переадресация на /nojs.html не происходит.
 

maxru

МИФИст
dimagolov то, что ты сказал, я уже понял. Но все равно спасибо.
Осталось только подумать, как отключить у Яваскрипта в FF менять location.
 

SiMM

Новичок
> броузер блокирован, т.к. у него есть плагин, который блокирует рекламу
Чудики никогда не слышали про Proxomitron & etc :)

> Я был невнимателен, когда искал скрипт в коде страницы.
> Отсюда просьба: перенесите тему в оффтопик или закройте.
К PHP эта проблема всё равно не имела отношения.
 

Андрейка

Senior pomidor developer
если я ниче не путаю, то друзья этих чудиков по разуму тусуюццо на talks.php.net
 

maxru

МИФИст
SiMM я уже понял.
Просто моя невнимательность заставила меня весь вечер поизвращаться в поисках того, как можно средствами PHP определить браузер и имитировать IE.
 
Сверху