Доброго вечера!
Столкнулся с такой проблемой: есть основной сайт, недавно сделали мобильную версию на отдельном поддомене. Разработчик добавил скрипт, где определялся тип устройства, и человек перекидывался (или не перекидывался на мобильную версию). Все бы ничего, но если ему вдруг нужно перейти на полную версию сайта? То как тут быть? Я нашел такое решение:
<?php
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$mobile = strpos($_SERVER['HTTP_USER_AGENT'],"Mobile");
$symb = strpos($_SERVER['HTTP_USER_AGENT'],"Symbian");
$operam = strpos($_SERVER['HTTP_USER_AGENT'],"Opera M");
$htc = strpos($_SERVER['HTTP_USER_AGENT'],"HTC_");
$fennec = strpos($_SERVER['HTTP_USER_AGENT'],"Fennec/");
$winphone = strpos($_SERVER['HTTP_USER_AGENT'],"WindowsPhone");
$wp7 = strpos($_SERVER['HTTP_USER_AGENT'],"WP7");
$wp8 = strpos($_SERVER['HTTP_USER_AGENT'],"WP8");
if($ipad || $iphone || $ipod || $android || $symb || $operam || $htc || $winphone || $berry) {
if(isset($_REQUEST['ver']) and $_REQUEST['ver'] === 'full') {
if(empty($_COOKIE['ver']))
setcookie('ver', 'full', time() + 86400, '/', '.site.ru');
} else {
header('Location: http://m.site.ru');
exit;
}
}
?>
Но возникает проблема на телефонах и пишется, что страницу не удалось загрузить из-за слишком большого числа редиректов. Подскажите пожалуйста, как можно решить эту проблему? Или другое решение?
Заранее спасибо
UPD1: я вообще думаю, что алгоритм должен быть следующий:
1. Проверяем, есть ли кука:
1.1 да:
1.1.1 "мобильный" - редирект на мобильную страницу
1.1.2 "десктопный" - редирект на десктопную страницу
1.2 нет:
1.2.0 определяем тип устройства:
1.2.1 мобилка - ставим куку "мобильный", редиректим на мобильную страницу
1.2.2 десктоп - ставим куку "десктопный", редиректим на десктопную страницу
Тогда в этом случае можно вручную поставить нужную куку, чтобы с мобилки заходить на десктоп, и с десктопа - на мобилку. Вопрос, как это реализовать с помощью волшебства php?