Проблема. Библиотека GD на h2m

Печать RSS
441


Ктулху
0
13, а с чего ты взял что хомяк должен картинку кэшировать? это ты, как кодер, должен кэшировать
Автор
Пацак
0
Ну мне писалы что он кэширует её. И с этим проблемы случались. Вот я и ответил.
A

Оранжевые штаны
0
я писал что кэширует, можете сами протестировать вот этот код
<?php
session_start();

if(empty($_SESSION['captcha'])){
exit();
}

header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');

$image=imagecreate(46,18);
imagefill($image,0,0,imagecolorallocate($image,255,255,255));

$code=(string)$_SESSION['captcha'];
imagestring($image,5,mt_rand(4,5),mt_rand(0,3),$code[0],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imagestring($image,5,mt_rand(14,15),mt_rand(0,3),$code[1],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imagestring($image,5,mt_rand(24,25),mt_rand(0,3),$code[2],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imagestring($image,5,mt_rand(34,35),mt_rand(0,3),$code[3],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));

imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));

header('Content-Type: image/gif');
imagegif($image);
imagedestroy($image);
?>
на h2m при неправильном вводе проверочного числа, и обновлении страницы, изображение не меняется, ну или по крайней мере не менялось, не смотря на то, что $_SESSION['captcha'] совершенно другое значение было, этот же самый код на другом хостинге, конкретно на джахост, работает без проблем
Изменил: Azzido

крутой чЕл
0
И в связи с чем там такое?

Ктулху
0
Решение же есть... передавайте к каптче в GET рандомную переменную и всё
15, это не совсем хомяк кэширует... разве что nginx может кэшировать, но я почему-то более чем уверен что дело в браузере. т.к. мало кто умеет правильно убирать кэширование (а это реально так, у большинства какое-то череззаднепроходное решение которое они суют везде подряд)
Изменил: ктулху
A

Оранжевые штаны
0
18. ShiftBHT_есть_чо7, в GET передавал, вариации с header, но увы ничего

Ктулху
0
19, не может кэшироваться элемент при обращении по другому адресу (путём добавления рандомной переменной). Ну просто не поверю... Можно конечно сделать чтоб кэшировалось на уровне nginx, но вменяемый админ не будет игнорировать ключи кэширования (хрен с ним куки, но не строку запроса же)
Стикеры / Теги / Правила