IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Определить тип и версию браузера у посетителя и перенаправить его на нужную страницу. (http://www.imho.ws/showthread.php?t=147732)

mrMove 10.08.2013 13:43

Определить тип и версию браузера у посетителя и перенаправить его на нужную страницу.
 
Нужно определить версию браузера у посетителя и перенаправить его на соответствующую страницу. Т.е. сначала определяем тип, потом версию, и в зависимости от типа и версии перенаправляем на нужную страницу.

Вот код который определяет тип и версию браузера.
Код:

<?

function user_browser($agent) {
        preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info); // регулярное выражение, которое позволяет отпределить 90% браузеров
        list(,$browser,$version) = $browser_info; // получаем данные из массива в переменную
        if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1]; // определение _очень_старых_ версий Оперы (до 8.50), при желании можно убрать
        if ($browser == 'MSIE') { // если браузер определён как IE
                preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie); // проверяем, не разработка ли это на основе IE
                if ($ie) return $ie[1].' based on IE '.$version; // если да, то возвращаем сообщение об этом
                return 'IE '.$version; // иначе просто возвращаем IE и номер версии
        }
        if ($browser == 'Firefox') { // если браузер определён как Firefox
                preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff); // проверяем, не разработка ли это на основе Firefox
                if ($ff) return $ff[1].' '.$ff[2]; // если да, то выводим номер и версию
        }
        if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); // если браузер определён как Opera 9.80, берём версию Оперы из конца строки
        if ($browser == 'Version') return 'Safari '.$version; // определяем Сафари
        if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; // для неопознанных браузеров проверяем, если они на движке Gecko, и возращаем сообщение об этом
        return $browser.' '.$version; // для всех остальных возвращаем браузер и версию
}
echo user_browser($_SERVER['HTTP_USER_AGENT']);

?>

А как сделать перенаправление? У меня не получается(

BorLase 10.08.2013 16:53

http://ru-info.net/index.php?page=post&id=2

обрати внимание: "учтите, что заголовки следует передавать до какого-либо вывода текста в браузер"

т.е., если у тебя хотя бы пробел между РНР-тэгами окажется - уже работать не будет

mrMove 11.08.2013 15:59

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

добавлено через 6 минут
Если у кого-то есть другое решение моей проблемы поделитесь пожалуйста)

EvroStandart 12.08.2013 12:11

Заместо
echo user_browser($_SERVER['HTTP_USER_AGENT']);

надо сделать примерно так:
$browser = user_browser($_SERVER['HTTP_USER_AGENT']);

И дальше писать свою логику

if( 'Opera 9.80' == $browser ){
// здесь код для перехода на другую страницу
}

mrMove 17.08.2013 13:28

Вопрос решен. Тему можно закрыть.

BorLase 18.08.2013 10:00

Цитата:

Сообщение от mrMove (Сообщение 1771583)
Вопрос решен. Тему можно закрыть.

ты бы решение привел ;)

нет ничего хуже, чем гуглишь проблему, находишь форум с таким же вопросом, читаешь... а в конце "Problem solved, thanks to all"

убить хочется :cool:

mrMove 22.08.2013 20:16

Вот ссылка на скачивание

Вложения почему-то не грузятся( Да и копеечку хоть заработаю)

Кто может помогите с новым кодом http://imho.ws/showthread.php?p=1771705#post1771705


Часовой пояс GMT +4, время: 11:29.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.