powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Кэш редиректа
10 сообщений из 10, страница 1 из 1
Кэш редиректа
    #38433630
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
У кого железные нервы и стальной мосг - тем рекомендован к прочтению текст ниже. У кого нет, но вы все же решились его прочитать - за состояние вашей психики я не отвечаю :) Моя убита к чертям)

Сделать нужно следующее: заходим на любую страницу сайта, в скрипте проверяется наличие определенной куки, если ее не существует, происходит редирект на определенную внутреннюю страницу, если есть - ничего не происходит.
Сделал 2 файла: test1.php и test2.php.

test1.php:
Код: php
1.
2.
3.
4.
5.
6.
if(!isset($_COOKIE['my_test']))
{	
	Header('HTTP/1.1 301 Moved Permanently'); 
	Header('Location: http://www.site.ru/test2.php'); 
	exit;
}


test2.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
setcookie('my_test', '1', time() + 3600, '/', '', '', 1);
echo '
<html>
  <body>
    Cookie set&nbsp;<a href="test1.php">Go to test1.php</a>
  </body>
</html>
';


Заходим на site.ru/test1.php, нас перекидывает на site.ru/test2.php. Все ок. Кликаем по ссылке "Go to test1.php" - остались на месте. Увеличиваем частоту клика по ссылке и видим, что test1.php все же промелькивает, но почему-то опять кидает на test2.php.

Убираем из test1.php строку:
Код: php
1.
Header('HTTP/1.1 301 Moved Permanently'); 


Результат тот же.

Важно: в файле test1.php запрещен GET в htaccess (не спрашивайте зачем, я в данном случае ничего не могу изменить). Т.о., решение проблемы

Код: php
1.
<a href="test1.php?'.time().'">Go to test1.php</a>


Не поможет. Как еще решить проблему?

Но она точно как-то решается и без этого!
Зайдите с айфона/айпада (пример работает только на айфоне/айпаде) сюда .
Вас перекинет на промостраничку. В правом верхнем углу - ссылка. Кликните и вернесесь обратно.

Мне нужно сделать, по сути своей, подобную вещь.

Тут есть еще один интересный момент: если зайти напрямую на test2.php, а test1.php изменить следующим образом:
Код: php
1.
2.
var_dump($_COOKIE['my_test']);
exit;


то при заходе на test1.php в хроме и ФФ мне выводится 1, а опере, сафари и ИЕ - NULL. Также NULL выводится на айпаде. На айфоне проверить не могу, т.к. не имею сей девайс.

Проверил в настройках куки - включены. Думал что какие-то проблемы с сервером, залил эти же файлы еще на 2 других сервера - и везде одинаковая проблема. Т.е. вроде бы проблема не в сервере, получается.

Но есть третий интересный момент: у моего приятеля во всех пяти браузерах выводится 1 :) Плюс на айпаде и айфоне тоже выводится 1. Тогда я попросил еще двух человек зайти с айфона - у обоих выводится NULL.

И вот четверый интересный момент. Я проделываю всю эту процедуру у себя на локальном компе - и все ок! Во всех браузерах выводится 1. После этого я понял, что у меня едет крыша.

Итого: я уже не понимаю, за что хвататься. Мне нужно сделать простой редирект при отсутствии куки на определенную страницу. А с нее - редирект обратно при клике по ссылке. Вроде бы работы на 10 минут, если не меньше. А я бьюсь с этим весь день. И никакого результата.

Если кто-то дочитал до конца - большой вам респект. Если кто-то поможет решить проблему - большое спасибо!
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433635
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhay,

у вас test1.php и test.php - это один и тот же файл или два разных?
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433649
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите. Руками набирал, описался.
test.php - это test1.php

Есть возможность исправить? Модератор: Исправлено
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433657
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayПростите. Руками набирал, описался.
test.php - это test1.php

Есть возможность исправить?Если только попросить модератора через кнопку "сообщить модератору".
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433658
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте посмотреть, что реально происходит в HTTP-протоколе.
Например, плагином HttpFox для Firefox-а, хотя есть и автономные анализаторы.
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433663
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. А что конкретно нужно посмотреть?
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433664
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, эта функциональность должна работать для iphone/ipad. Для остального ничего этого быть не должно. Я просто не стал об этом писать, чтобы не путать читающих. Поэтому, реально, сначала идет проверка юзер_агента, и если он афон/айпад, то происходит уже то, что описано.
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433683
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
urukhayСпасибо. А что конкретно нужно посмотреть?Какие куки реально передаются, какие http-запросы и ответы проходят.
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433689
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно. Спасибо.
А если отвлечься от кук. Как бороться с кэшем редиректа? Сделаем небольшие изменения:

test1.php:
Код: php
1.
2.
3.
4.
5.
if(!isset($_GET['my_test']))
{	
	Header('Location: http://www.site.ru/test2.php'); 
	exit;
}



test2.php
Код: php
1.
2.
3.
4.
5.
6.
7.
echo '
<html>
  <body>
    Cookie set&nbsp;<a href="test1.php?a=1">Go to test1.php</a>
  </body>
</html>
';



Проблема с кэшем остается. А если так:
test2.php
Код: php
1.
2.
3.
4.
5.
6.
7.
echo '
<html>
  <body>
    Cookie set&nbsp;<a href="test1.php?a='.time().'">Go to test1.php</a>
  </body>
</html>
';


То проблема уходит.

Но, как я писал выше, в моем случае GET не катит :(
...
Рейтинг: 0 / 0
Кэш редиректа
    #38433690
urukhay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. первая проблема не связана с проблемой с куками, насколько я понимаю ...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Кэш редиректа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]