Страницы: 1
в общем проблема в следующем если я пытаюсь пере-запросить картинку вот так
<script type="text/javascript"> function refresh_security_code() { document.getElementById('security_code').innerHTML = '<img src="http://localhost/code_image/index.php" width="100" height="48" />'; } </script>
при этом Firefox обновляет ее только один раз ....
а в случае с кодом от спамеров не хотелось бы перезагружать всю страничку....
как это вылечить???? заранее спасибо!
Отсутствует
Правильный вариант, научить скрипт code_image/index.php отдавать правильные заголовки запрещающие кеширование.
Альтернативный вариант, дописывать к адресу картинки случайное число, например текущее время в миллисекундах
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
MrSkinner
Правильный вариант, научить скрипт code_image/index.php отдавать правильные заголовки запрещающие кеширование.
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
Я конечно понимаю что правильно это хорошо но вот что бы я не пробовал записывать в header, firefox побаку и он все равно заносит картинку в кеш!
один из вариантов header
header ("Content-type: image/png"); header("Cache-Control: no-store"); header("Expires: " . date("r"));
Все статьи про запрет кеширования мне рассказывают именно про такой способ если знаете другой подскажите.
перепробовал все что было в мануале (RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1)
Cache-Control = "Cache-Control" ":" 1#cache-directive cache-directive = cache-request-directive | cache-response-directive cache-request-directive = "no-cache" ; Section 14.9.1 | "no-store" ; Section 14.9.2 | "max-age" "=" delta-seconds ; Section 14.9.3, 14.9.4 | "max-stale" [ "=" delta-seconds ] ; Section 14.9.3 | "min-fresh" "=" delta-seconds ; Section 14.9.3 | "no-transform" ; Section 14.9.5 | "only-if-cached" ; Section 14.9.4 | cache-extension ; Section 14.9.6 cache-response-directive = "public" ; Section 14.9.1 | "private" [ "=" <"> 1#field-name <"> ] ; Section 14.9.1 | "no-cache" [ "=" <"> 1#field-name <"> ]; Section 14.9.1 | "no-store" ; Section 14.9.2 | "no-transform" ; Section 14.9.5 | "must-revalidate" ; Section 14.9.4 | "proxy-revalidate" ; Section 14.9.4 | "max-age" "=" delta-seconds ; Section 14.9.3 | "s-maxage" "=" delta-seconds ; Section 14.9.3 | cache-extension ; Section 14.9.6 cache-extension = token [ "=" ( token | quoted-string ) ]
IE и дримвивер явно меняют свое поведении а глубоко побаку!
Отредактировано MrSkinner (01-11-2010 00:27:38)
Отсутствует
в общем временно решил проблему так:
<script type="text/javascript"> function refresh_security_code() { document.getElementById('security_code').src = 'http://localhost/code_image/index.php?' + Math.random(); } </script>
если кто что присоветует по поводу заголовка то буду очень признателен ...
Отсутствует
вот пример картинки, тут код заголовков:
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');
Отсутствует
Страницы: 1