Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не работает Антикэш

48K
18 марта 2010 года
gloomen
8 / / 16.09.2009
Всем привет, после переустановки ПО на сервере сталкнулся с такой

делемой.

Не срабатывает анти кеширование. Вот к примеру у нас есть капча:

http://www.captcha.ru/kcaptcha.zip, тестировал и на других!
Установил всё работает т.е. срабатывает антикеш: в ie5-8, firefox,

Хром, Сафари
А, вот в опере 9x, 10x нехочет, причём пробовал с нескольких ПК
Раньше был php 5.10, сейчас 5.12 и nginx/0.7.65
Сайт на котором всё это дело крутиться находиться в локальной сети

поэтому извне доступа нет.
Может быть в PHP есть заветная галочка подержка оперы, которую я не

поставил? :)


вот код:
 
Код:
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        Header("Last-Modified: ".gmdate("D, d M Y

H:i:s")."GMT");
        Header("Cache-Control: no-cache, must-revalidate");
        Header("Pragma: no-cache");
        header("Content-type: image/png");

Пробовал и так:
Код:
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        header('Cache-Control: no-store, no-cache,

must-revalidate');
        header('Cache-Control: post-check=0, pre-check=0',

FALSE);
        header('Pragma: no-cache');
       
        if(function_exists("imagejpeg")){
            header("Content-Type: image/jpeg");
            imagejpeg($img2, null, $jpeg_quality);
        }else if(function_exists("imagegif")){
            header("Content-Type: image/gif");
            imagegif($img2);
        }else if(function_exists("imagepng")){
            header("Content-Type: image/x-png");
            imagepng($img2);
        }
253
18 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Самое радикальное решение в этом случае просто добавлять к картинке (которая, как я понимаю, выдаётся kaptcha.php) рандомную строку. Типа:
 
Код:
<img src="kaptcha.php?rand=<?=mt_rand(1, 1000000);?>" alt="CAPTCHA" />
48K
18 марта 2010 года
gloomen
8 / / 16.09.2009
Попробовал радикальное решение:
 
Код:
<img src="kaptcha.php?rand=<?=mt_rand(1, 1000000);?>" alt="CAPTCHA" />


Результат: Результат работы в опере 9-10
- Загрузилась страница сгенерировал капча И ?rand=812055
- Нажимаю F5: генерируется новая капча и ?rand=893453
- Стоит нажать на кнопку "назад" в опере, страница переход на предедущую:
А, вот здесь старая капча(не сгенерированная), а также старый ?rand=893453
- Теперь нажимаем вперёд и опять старая капча и старый ?rand=893453
- А вот стоит только нажать F5 как всё прекрстно генерируется!
----------------------------------------------------
Это результат работы только в опере!, вовсе других браузерах(см. выше), работает, новое число генерируется
всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.


P.S. Что самое интересно раньше в опере 9-10 работало до смены ПО на серваке (см. выше)
Что же за херня такая???
253
18 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Во всех других браузерах(см. выше), работает, новое число генерируется
всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.


По идее, Опера всё делает правильно, когда не генерирует новый rand. Не знаю правда, почему её не удовлетворяют твои заголовки не-кеширования, вроде Опера вполне со стандартами не плохо живёт.

Кстати, тут у тебя недочёт (может он и ломает Оперу?):

 
Код:
Header("Last-Modified: ".gmdate("D, d M Y H:i:s").[COLOR="Red"]" G[/COLOR]MT");

P.S. Что самое интересно раньше в опере 9-10 работало до смены ПО на серваке (см. выше) ]
Забыл пробем перед GMT

Цитата:
P.S. Что самое интересно раньше в опере 9-10 работало до смены ПО на серваке (см. выше)


Странно. Может это nginx что-то мудрит с заголовками? Насколько я знаю, его можно настроить на быструю выдачу статики, минуя скрипты и прочее, может, у тебя что-то такое стоит? (Хотя тут я не уверен.)
Особенно если раньше стоял Апач.

56K
04 апреля 2010 года
Craz-z-zy
14 / / 15.03.2010
Я плохо понимаю, но у меня была таже проблема.
А обязательно делать через Header()?

Может быть это как-то поможет (правда не PHP) :confused:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
253
04 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
<meta> не для всех работает - не обязательно, что она будет прочитана клиентом. Заголовки обычно надёжнее, хотя и так по-идее должно работать, если продублируешь все заголовки для PHP, что мы обсуждали выше, в <meta>.
56K
04 апреля 2010 года
Craz-z-zy
14 / / 15.03.2010
Все заголовки к сожалению не смогу, я только начал это изучать.
Вот пара (надеюсь правельно):

<meta http-equiv="expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
<meta http-equiv="Content-Type" content="image/png">

У меня вот в чем вопрос появился (правда в хэдерах также или нет)
experies по идее должен установить дату/время, после которой информация будет считаться устаревшей. Это обязательно нужно? Может быть

Header("Pragma: no-cache"); и Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); (???)
каким-то образом мешают друг другу.

или может как-то дату поменять. А если попробовать дату поставить ещё не наступившую (забежать вперёд)

Всё я запутался...
Попробую, если что-то получится напишу.
У меня самого Opera 10.50, в базу данные добавляю, ворачиваюсь назад, и на предыдущих страничках выводится база данных со всеми новыми данными
13
04 апреля 2010 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Craz-z-zy
Все заголовки к сожалению не смогу, я только начал это изучать.
Вот пара (надеюсь правельно):

<meta http-equiv="expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
<meta http-equiv="Content-Type" content="image/png">



У вас в голове такая каша, а вы уже лезете отвечать в те топики, в теме которых совершенно не разбираетесь

При чем тут меты и контент тайп картинки?

56K
04 апреля 2010 года
Craz-z-zy
14 / / 15.03.2010
Ну а в чем же тогда дело?? Напишите тогда пожалуйста как надо, мне эта тема интересна, и я хочу с ней разобратся. Я всего лишь сказал свои соображения, может быть я в чем-то прав, и кто-нибудь сможет продолжить идею. А если я не правельно написал, скажите мне об этом, я учту.
13
04 апреля 2010 года
RussianSpy
3.0K / / 04.07.2006
Автору топика уже ответили. Если интересно - задавайте конкретные вопросы - получите конкретные ответы.
56K
04 апреля 2010 года
Craz-z-zy
14 / / 15.03.2010
Цитата: gloomen
Попробовал радикальное решение:
 
Код:
<img src="kaptcha.php?rand=<?=mt_rand(1, 1000000);?>" alt="CAPTCHA" />


Результат: Результат работы в опере 9-10
- Загрузилась страница сгенерировал капча И ?rand=812055
- Нажимаю F5: генерируется новая капча и ?rand=893453
- Стоит нажать на кнопку "назад" в опере, страница переход на предедущую:
А, вот здесь старая капча(не сгенерированная), а также старый ?rand=893453
- Теперь нажимаем вперёд и опять старая капча и старый ?rand=893453
- А вот стоит только нажать F5 как всё прекрстно генерируется!
----------------------------------------------------
Это результат работы только в опере!, вовсе других браузерах(см. выше), работает, новое число генерируется
всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.


P.S. Что самое интересно раньше в опере 9-10 работало до смены ПО на серваке (см. выше)
Что же за херня такая???



Это чтоли? Больше я не нашёл. А про OPERA все таки интересно.
В правелах же написано: не повторяйте темы ???

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог