Помогите с переадресацией
1594 сообщения
#14 лет назад
Второй час решаю следующую проблему.Есть скрипт, который определяет ширину экрана пользователя.
Если ширина меньше какого-то значения - выводим далее страницу (ссылка)
Если больше - переадресовываем на index.html, на которой расположен фрейм с index.php
Проблема в чем?
1. Если не применять Cookie для хранения информации "который раз зашел", то внутри фрейма снова переадресация, потом снова и т.д. Бесконечный цикл, в общем.
2. Если в Cookie записывать например "1", то "Если Cookie != 1, то переадресовываем, иначе - выводим страницу дальше". Всё ок, внутри серфинга нормально кликается по ссылкам и т.д. Но если снова зайти на главную (ссылка) то нас не переадресовывает на index.html, на которой расположен фрейм.
Как быть? Как мне правильно определить надо переадресовывать или нет, чтобы и внутри фрейма работало
659 сообщений
#14 лет назад
Anexroid, покажите хотябы скрипт переадресатора , вслепую сложно что-либо сказать ...Используйте сессии вместо куков , да и зачем вам фрейм ? Вот например :
<?php
session_start();
if(!isset($_SESSION) || empty($_SESSION)) {
if (isset($_GET)){
//если уже был запущен обработчик
$_SESSION=$_GET;
}
else {
//здесь организовать скрипт проверки размера экрана
//а вместо кука в зависимости от размера экрана в урл передать параметр сайз .
}
}
if($_SESSION==1) {
//а здесь вывод в зависимости от размера
}
if($_SESSION==2) {
//а здесь вывод в зависимости от размера
}
if($_SESSION==3) {
//а здесь вывод в зависимости от размера
}
?>
Примерно так , если заработает - скажите мне спасибо )
1594 сообщения
659 сообщений
#14 лет назад
Anexroid, см. предыдущий пост )к примеру 1-ширина экрана меньше 600 , 2 - больше . Это проверяет яваскрипт .
И передает нужный параметр урлом .
1594 сообщения
#14 лет назад
Не, нельзя так.Смысл в чем:
Сайт сделан для мобильных телефонов (WAP)
Если человек зашел с компа (определяется по размеру экрана) - то выводим ему "заглушку" с фреймом (узким) в котором отображается наш сайт (WAP)
659 сообщений
#14 лет назад
Цитата ("Xazzzi"):<?php
session_start();
if(!isset($_SESSION) || empty($_SESSION)) {
if (isset($_GET)){
//если уже был запущен обработчик
$_SESSION=$_GET;
}
else {
//здесь организовать скрипт проверки размера экрана
//а вместо кука в зависимости от размера экрана в урл передать параметр сайз .
}
}
if($_SESSION==1) {
//а здесь вывод вап сайта
}
if($_SESSION==2) {
//а здесь вывод фрейма с заглушкой
}
?>
Почему же нельзя ?
1172 сообщения
#14 лет назад
Цитата ("Anexroid"):if(intval($resolution_width) > 600)
{
setcookie('comp', 1);
if($_COOKIE != 1)
{
header("Location: ссылка;);
}
}
setcookie не добавляет ничего в $_COOKIE, пока не перезагрузите страницу.
И используя ваш метод, вы на редирект отправите любой мобильник с разрешением дисплея более 600 точек в горизонтальном положении, если у него есть автоматическая смена ориентации экрана.
1594 сообщения
#14 лет назад
Xazzzi, здесь, если я выведу фрейм, то $_SESSION будет == 2, и внутри фрейма будет опять выводится заглушка с фреймом и т.д.Цитата ("Lisio"):
setcookie не добавляет ничего в $_COOKIE, пока не перезагрузите страницу.
Я в курсе, именно поэтому у меня при входе на site.ru - переадресация срабатывала, а затем, во фрейме, когда в куках уже было доступное значение - нет.
Цитата ("Lisio"):
И используя ваш метод, вы на редирект отправите любой мобильник с разрешением дисплея более 600 точек в горизонтальном положении, если у него есть автоматическая смена ориентации экрана.
Не спорю. Но в данном случае мне важно не 100% определение комп/мобильник, а правильный вывод содержимого
279 сообщений
205 сообщений
#14 лет назад
Цитата ("Anexroid"):
Смысл в чем:
Сайт сделан для мобильных телефонов (WAP)
Если человек зашел с компа (определяется по размеру экрана) - то выводим ему "заглушку" с фреймом (узким) в котором отображается наш сайт (WAP)
user agent парсерить не хочется?
3195 сообщений
#14 лет назад
А у меня настолько современный мобильный, что я не хочу ваш wap, а хочу нормальный сайт. Как мне обойти ваш алгоритм? Вот для этого, если вы обратите внимание, сайты имеют в хедере ссылку на wap. Пользователь счастлив, прогер пьёт пиво.
Считаю ваше решение некорректным в предпосылке к нему.
1594 сообщения
#14 лет назад
e1it3, там в принципе класс определяет: ширина/высота экрана, браузер, если мобила - то модель мобилы, если комп - то браузерЦитата ("AlekartRu"):
А у меня настолько современный мобильный, что я не хочу ваш wap, а хочу нормальный сайт.
Этот сайт не имеет web-версии в принципе.
Цитата ("AlekartRu"):
Вот для этого, если вы обратите внимание, сайты имеют в хедере ссылку на wap.
А этот сайт имеет имеет в адресной строке браузера домен .mobi
279 сообщений
#14 лет назад
Цитата ("neadekvat"):neadekvatда конструкция вообще странная,просто дополнил как по логике работать должно. Вообще очень жутко смотреть на код в котором ты сначала задаешь переменную в куках равную 1 и тут же проверяешь не равна ли она 1...думаю можно было найти решение покрасивее
1172 сообщения
#14 лет назад
Цитата ("Anexroid"):Не спорю. Но в данном случае мне важно не 100% определение комп/мобильник, а правильный вывод содержимого
А насколько вывод будет правильным, если я зайду с компа, используя браузер, который развернут только на 1/4 экрана?
1594 сообщения
#14 лет назад
Lisio, вам выдаст "заглушку". Скрипт определит Вас как "Комп - Имя браузера", и даст Вам независимо от настоящего размера экрана - 800px вроде.Просто скрипт в главную очередь создан для того, чтобы определять размер экрана мобильных девайсов
1594 сообщения
#14 лет назад
Цитата ("_VersouL_"):if(intval($resolution_width) > 600)
{
setcookie('comp', 1);
if($_COOKIE != 1)
{
header("Location: ссылка;);
}
else
{
setcookie('comp',0);
}
}
мне кажется вот так должно работать,попробуй
При переходе по ссылке внутри фрейма - переадресация срабатывает. Что я, собственно, и предполагал