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");
Не работает Антикэш
делемой.
Не срабатывает анти кеширование. Вот к примеру у нас есть капча:
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('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);
}
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);
}
Код:
<img src="kaptcha.php?rand=<?=mt_rand(1, 1000000);?>" alt="CAPTCHA" />
Код:
<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 работало до смены ПО на серваке (см. выше)
Что же за херня такая???
Цитата:
Во всех других браузерах(см. выше), работает, новое число генерируется
всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.
всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.
По идее, Опера всё делает правильно, когда не генерирует новый 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 что-то мудрит с заголовками? Насколько я знаю, его можно настроить на быструю выдачу статики, минуя скрипты и прочее, может, у тебя что-то такое стоит? (Хотя тут я не уверен.)
Особенно если раньше стоял Апач.
А обязательно делать через Header()?
Может быть это как-то поможет (правда не PHP) :confused:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta> не для всех работает - не обязательно, что она будет прочитана клиентом. Заголовки обычно надёжнее, хотя и так по-идее должно работать, если продублируешь все заголовки для PHP, что мы обсуждали выше, в <meta>.
Вот пара (надеюсь правельно):
<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, в базу данные добавляю, ворачиваюсь назад, и на предыдущих страничках выводится база данных со всеми новыми данными
Цитата: Craz-z-zy
Все заголовки к сожалению не смогу, я только начал это изучать.
Вот пара (надеюсь правельно):
<meta http-equiv="expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
<meta http-equiv="Content-Type" content="image/png">
Вот пара (надеюсь правельно):
<meta http-equiv="expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
<meta http-equiv="Content-Type" content="image/png">
У вас в голове такая каша, а вы уже лезете отвечать в те топики, в теме которых совершенно не разбираетесь
При чем тут меты и контент тайп картинки?
Ну а в чем же тогда дело?? Напишите тогда пожалуйста как надо, мне эта тема интересна, и я хочу с ней разобратся. Я всего лишь сказал свои соображения, может быть я в чем-то прав, и кто-нибудь сможет продолжить идею. А если я не правельно написал, скажите мне об этом, я учту.
Автору топика уже ответили. Если интересно - задавайте конкретные вопросы - получите конкретные ответы.
Цитата: gloomen
Попробовал радикальное решение:
Результат: Результат работы в опере 9-10
- Загрузилась страница сгенерировал капча И ?rand=812055
- Нажимаю F5: генерируется новая капча и ?rand=893453
- Стоит нажать на кнопку "назад" в опере, страница переход на предедущую:
А, вот здесь старая капча(не сгенерированная), а также старый ?rand=893453
- Теперь нажимаем вперёд и опять старая капча и старый ?rand=893453
- А вот стоит только нажать F5 как всё прекрстно генерируется!
----------------------------------------------------
Это результат работы только в опере!, вовсе других браузерах(см. выше), работает, новое число генерируется
всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.
P.S. Что самое интересно раньше в опере 9-10 работало до смены ПО на серваке (см. выше)
Что же за херня такая???
Код:
<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 все таки интересно.
В правелах же написано: не повторяйте темы ???