Получить название браузера средствами PHP

BopoH

Новичок
Получить название браузера средствами PHP

я хочу получить название браузера средствами PHP
пробовал через get_browser и Net_UserAgent_Detect

открывал скрипты в IE и в Oper`е. Оба выдают, что у меня "IE"

затем попробовал вставить JavaScript:
PHP:
<script>document.write(navigator.appName);</script>
он у меня выдает в Oper`e: "Opera"
а в IE: "Microsoft Internet Explorer"

т.е. на JavaScript выдает правильно, а не PHP нет.

так как же мне это реализовать через PHP?
 

Кром

Новичок
BopoH php определяет броузер по заголовку в которм можно написать что угодно. В этом плане javascript предпочтительней.
 

WP

^_^
Кром
Смиялсо. А когда JS будет передавать на сервер информацию, нельзя написать что угодно?
 

BopoH

Новичок
Все методы на http://www.php.net/get_browser
работают "парся" содержимое $_SERVER['HTTP_USER_AGENT']

но у меня в обоих браузерах (Opera и IE) ее содержимое равно "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"

а нельзя еще откуда-нибудь инфу о браузере взять?
 

WP

^_^
BopoH
В Opere стоит опция чтоб она определялась как IE.
 

Gorynych

Посетитель PHP-Клуба
BopoH

интересно, а меня нет (хотя настройка Оперы - идентифицироваться как MSIE 6.0)

Для Оперы $_SERVER["HTTP_USER_AGENT"]=>
string(65) "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.54"

Для IE $_SERVER["HTTP_USER_AGENT"]=>
string(87) "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727)"

т.е. информация про Оперу очень похожа, но содержит подстроку "Opera"...
 

BopoH

Новичок
разобрался...
я скрипт запускал через локальный сервер
а в его настройках в HTTP_USER_AGENT стояло "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"

вот он мне и выдавал одно и тоже в разных браузерах
 

MLT-Coder

Новичок
Определение браузера с помощью JavaScript строится на анализирование наличия определенных объектов

<script>
if (opera) {
document.cookie = 'browser=opera';
} else if (external) {
document.cookie = 'browser=ie';
} else {
document.cookie = 'browser=netscape';
}
</script>
<?
if ($_COOKIE['browser'] === 'ie') {
...
} elseif (...) {
...
}
...
?>
 

Кром

Новичок
Смиялсо. А когда JS будет передавать на сервер информацию, нельзя написать что угодно?
Желание копаться в сорце и смотреть какой там параметр в JavaScrit'овом коде отвечает за информацию о броузере (с целью его подмены) может прийти в голову только идиотам с ХакерРу.
 

WP

^_^
Кром
Желание копаться в HTTP-протоколе с целью подмены User-agent'а может прийти в голову только человеку без головы) Да и потом, что он добъется?
 

Кром

Новичок
Копаться в протоколе совсем необязательно. И броузер и прокси-сервер может подменить user-agent даже без участия пользователя.
 

demongloom

Новичок
Вопрос, а для собственно определение браузера нужно?
Для статистики, для подгона дизайна или другие задачи?
В первом случае статистику можно считать явой или парся логи веб сервера например.
Во втором случае, что весьма вероятно, можно пойти по двум путям:
1. менять дизайн в сторону совместимости. а хороший дизайн это и реализует.
2. игнорировать тех кто подменивает свой useragent.
 
Сверху