Internet Explorer. Не определяется тип браузера

Пример взят из книги С.Хольцнера "PHP в примерах" (стр.183-185) в рамках учебного курса PHP с нуля.
С помощью переменной

$_SERVER ["HTTP_USER_AGENT"]

не распознаётся Internet Explorer. Всегда выводится сообщение: "Вы используете НЕ IntExplorer". В чём ошибка?

HTML-форма:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>
            Экспериментальный Web
        </title>
    </head>
    <body>
        <form method="post" action="4_phpBrowser.php">
            <b> Определить тип браузера </b><br><br>
            <input type="submit" value="ok">
        </form><br><br> 
    </body>
</html>

Скрипт-обработчик:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>
            Определение типа браузера
        </title>
    </head>
    <body>
        <?php
        if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
            echo "<marquee><h1> Вы используете Internet Explorer </h1></marquee>";
        }
        else {
            echo "<center><h1> Вы используете не Internet Explorer </h1></center>";
        }
        ?>
    </body>
</html>
vedro-compota's picture

Что делать

В принципе объяснение проблемы дано здесь: https://habrahabr.ru/sandbox/67192/

А конкретно нас интересует вот это:

Любой анализирующий (sniffing) код, который ищет “MSIE” сейчас не будет работать с новой строкой user-agent.
Вы можете продолжать искать “Trident” для определения IE
(токен “Trident” был введен вместе с IE9).
Истинная версия IE сейчас идет с токеном “rv”

Таким образом надо просто искать подстроку Trident (типа "трезубец") -- а-ля:

if (strpos($_SERVER["HTTP_USER_AGENT"], "Trident")) {

Также отметим, что экплорер стал "маскироваться" как файрфокс, предпочитая чтобы его определяли как gecko совместимый браузер,
а Gecko -- это движок рисования страниц -- сердце браузера firefox.

Когда началась проблема

В статье написано, что :

Изменения User-agent

Строка user-agent для IE11 короче, чем предыдущие версии
и содержит некоторые интересные изменения:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

Сравним это со строкой user-agent IE10 (на Win7):

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

--то есть в 10-ой версии IE (Internet Explorer) в юзер-агент строке ещё
была подстрока "MSIE", а в IE11 её не было.

Также нам любезно сообщают, что версия браузера теперь идёт после подстроки rv:

Истинная версия IE сейчас идет с токеном “rv”

Такие дела)

_____________
матфак вгу и остальная классика =)