Определить версию браузера у посетителя и перенаправить его на нужную страницу.

Discussion in 'PHP' started by mrMove, 12 Aug 2013.

  1. mrMove

    mrMove New Member

    Joined:
    10 Aug 2013
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Нужно определить версию браузера у посетителя и перенаправить его на соответствующую страницу. Т.е. сначала определяем тип, потом версию, и в зависимости от типа и версии перенаправляем на нужную страницу.

    Вот код который определяет тип и версию браузера.
    Code:
    <?
    
    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']);
    
    ?>
    А как сделать перенаправление? У меня не получается(



    Вот пример того что надо:

    Если определяется Firefox ниже 20 версии то переход на "страница1", если 20 или выше, то "страница2"
    Если определяется Opera ниже 12 версии то переход на "страница1", если 12 или выше, то "страница2"
    Если определяется Chrome ниже 27 версии то переход на "страница1", если 27 или выше, то "страница2"
    Если определяется IE ниже 8 версии то переход на "страница1", если 8 или выше, то "страница2"
    Если определяется Safari ниже 5 версии то переход на "страница1", если 5 или выше, то "страница2"
    Если браузер не определился то "страница1"



    Если у кого-то есть готовый код который мне нужен поделитесь пожалуйста)
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Этот банальнейший вопрос не заслуживает отдельную тему. Я так понимаю вам для связки-сплойтов. Постите в раздел "работа" либо прочитайте первых 10 страниц любой книжки по пхп.
     
  3. Tamplier

    Tamplier New Member

    Joined:
    1 Jan 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Просто загноил парня))

    Лови)
    PHP:
    <?php
    if ($browser == 'MSIE') {
        
    header("Location:страница1.html");
    } elseif (
    $browser == 'Firefox') {
         
    header("Location:страница2.html");
    } elseif (
    $browser == 'Opera' && $version == '9.80') {
        
    header("Location:страница3.html");
    } else {
        
    header("Location:страница4.html")
    }
    ?>
    Что-то типо этого, только разобраться надо с версиями.
    В принципе можно после каждого определения браузера версию задать, как переменную и если больше 20, то туда-то, если меньше 20, то туда-то
    и т.п. (if else)
    И так с каждым браузером.
     
  4. mrMove

    mrMove New Member

    Joined:
    10 Aug 2013
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Вопрос решен. Тему можно закрыть.