22 декабря 2015
7 июля 2010
71
Когда уже IE6 не станет?
Совершенно случайно, когда фиксил баги в «осле» наткнулся на пост и мне понравилась идея. Ведь если каждый сайт будет ставить заглушку на IE6 с информацией о том, что браузер, мягко говоря, староват, пользователю ничего не останется как перейти на более новый браузер.
Сегодня я расскажу про два способа на php, как поставить такую заглушку себе на сайт.
Мне вспомнилась довольно старая видюшка:
Теперь о деле. Если вы хотите поставить такую заглушку на свой сайт (или не на свой), то можно пойти двумя путями:
Способ 1
В начале страницы втавляем следующий алгоритм:
- смотрим браузер посетителя;
- если это ie6, инклудим файл с заглушкой и останавливаем выполнение всего остального кода функцией exit().
Способ 2
В начале страницы вставляем следующий алгоритм:
- смотрим браузер посетителя;
- Если это ie6 редиректим на страницу с заглушкой.
Первый способ хорош и тем, что не будет проблем с поисковиками (они не любят редирект), и тем, что юзеру не придется ждать дополнительной перезагрузки страницы. Если же использовать редирект, то не будет заморочек с шаблонами.
Определяем версию браузера при помощи супеглобального массива $_SERVER.
Создайте файл noie6.php, его содержимое:
Include
// если пользователь сидит на windows xp
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')
//если пользователь сидит на windows 2000 (мало ли)
OR stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 5.01') ) {
include('путь к файлу с заглушкой');
exit();
}
Почему-то скрипт поставил заглушку и на IE7. Когда я посмотрел HTTP_USER_AGENT моего «ослика» я увидел там следующее:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1);
То есть он заявляет о том, что он и 7-й версии, и 6-й. Тогда я дополнил код:
// если это не ie7
if ( !stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0') ){
//если пользователь сидит на windows xp
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')
//если пользователь сидит на windows 2000 (мало ли)
OR stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 5.01') ) {
include('путь к файлу с заглушкой');
exit();
}
}
Редирект
// если это не ie7
if ( !stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0') ){
//если пользователь сидит на windows xp
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')
//если пользователь сидит на windows 2000 (мало ли)
OR stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 5.01') ) {
$url="путь к файлу с заглушкой";
header("Location: $url");
exit();
}
}
Заглушка
Предлагаю вашему вниманию вам скачать заглушку приведенную в топике на хабре — более красивой и адекватной заглушки я не нашел.
Выводы
Разницы между способами особой нет, главный критерий — ваши предпочтения. Единственное что меня не радует это дополнительный url на сайте (если использовать редирект), поэтому сам использую инклуд. Кто-то будет говорить, что инклуд дает большую нагрузку на сервер и т. д., и т. п., но где оно там от одного инклуда?
Скачать и установить
Вы можете скачать уже готовый пример и установить на свой сайт.
Установка
Извлеките паку «noie6» из архива и поместите в корень сайта. Откройте индексный файл своего сайта и вставьте строку
include($_SERVER['DOCUMENT_ROOT']."/noie6/include.php");
или
include($_SERVER['DOCUMENT_ROOT']."/noie6/redirect.php");
в зависимости от выбранного вами способа крепления заглушки.
P.S.
Надеюсь, в скором времени IE6 вымрет. Прошу в комментариях поделится статистикой о количестве посетителей вашего сайта, использующих IE6.
Лишать их сервиса, когда они не виноваты, бесчеловечно. Как бы не хотелось отказаться от этого, но сейчас нужно, чтобы сайт в основной своей части (можно без финтифлюшек) работал в ие6.
А заглушка — действительно уже миллион раз обсуждалась и реализовывалась.
brv, я делал нечто похожее на "чистом" jquery в системе управления сайтом для одной фирмы. юзеры просто отключали javascript и работали дальше. При этом не работал в том числе и визивиг и они писали тексты страниц в одну строку. Этот ужас пришлось прекращать.
Выдавайте пользователю с ИЕ6 чистый текст на белом фоне, с минимальной версткой, без яваскрипта и других фенечек. Но напишите (У вас ИЕ6, по этому вы видите облегченную версию сайта)
Пусть он понимает что его браузер устарел, но при этом имеет возможность читать текст, видеть картинки по теме. Ведь поисковикам вы не отказываете в контенте, хотя у них(кроме гугла пока) и JS не работает.
Интернет ведь в первую очередь способ передачи информации, а не галерея изобразительных искусств.
Я бывало вообще через links по сайтам лазил, когда дрова слетели))
Отключить все лишнее можно легко через ie6.css спасибо условным комментариям, вы же отключаете это для версий для печати, воспринимайте IE6-рошников так же )
И вообще, если исключить проблемы с поддержкой PNG-24, то у IE7 и IE6 примерно одни и те же симптомы лечатся одной и той же касторкой )
@Антон
Административный раздел это СОВСЕМ другое дело туда без JS-а можно вообще не пускать. Доступ к нему имеют ограниченное, обычно не очень большое число пользователей и тут можно выдвигать индивидуальные "достаточно высокие" требования.
Те, кто понимают, что ие6 - не круто, они уже бы обновились. Те же, кто не понимают, они вряд ли смогут сделать это (технически сложно, например, для моей мамы).
В итоге не понятно, на кого вы расчитываете? Неужели, на офисный планктон, который, кстати, не всегда физически может поставить другой браузер?..
Если кто-то катается на Mercedes 500k, так что, детали под него теперь выпускать?
А так пора уже давно забивать на ие6.
Буквально месяц назад столкнулся с одной проблемой: туристическую контору полностью перевели на Линукс, все работает как часы. Но! Есть сайты очень крупных компаний, через которые производится партнерское бронирование туров и билетов. Некоторые так и не удалось запустить под тем же фоксом, сайты упорно требовали осла и все тут. Как-то только не бились над решением проблемы, включая подмену агента браузера (на двух сайтах это прокатило), никакой реакции положительной.
Так что здесь все виноваты: и нерадивые админы, и ленивые разрабы, и неумехи-юзеры.
Но идею поддерживаю, самому до плеши надоело верстать с учетом шестерки
Если человек работает с внешними клиентами, то поддерживать администратору ещё 1 браузер для эффективности работу будет не сложно.
Так что идею поддерживаю на все 100
Не хотелось их раздражать, так что прикрутил подобную штуку только после того как они заказ оформляют, ну то есть после экшена на кнопке.
Результат практически нулевой.
Ну то есть, это я к тому что все кто мог уже обновились, остались те кто не могут или кому не дают админы.
Надо что-нибудь посерьезней придумать, что-то типа убэп, пусть ходят проверяют, вызывают админов в суд. :)
JS - да, но обычно баги и в 6, и в 7. А 7 еще до смерти далековато, я думаю. Да и 8 "радует" полупрозрачными png, например :)
И это пишется на js.
пс. Полностью согласен с мыслями по поводу того, что клиент должен увидеть информацию в любом случае, особенно, если это комерция.
Правда ХР не скоро умрет. На слабеньких машинах работает куда лучше Висты и Семерки. Думаю пару лет должно еще пройти как минимум. Глядишь, к 2015 году жизнь наладится)))
Простите, эмоции.
а еще сука я столкнулся с такой проблемой, в гос учреждениях ВООБЩЕ нет it-прогресса!!!! сука когда я пришел в пенсионный фонд сверять отчетность ИП я охуел когда мне сказали что надо принести ее на дискетах! Когда я заговорил про интернет и электронную почту... все охуевали и ничего не понимали...