У меня довольно простая капча, что-то вроде этого:
<?php
session_start();
function randomText($length) {
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,35)};
}
return $key;
}
$textCaptcha=randomText(8);
$_SESSION['tmptxt'] = $textCaptcha;
$captcha = imagecreatefromgif("bgcaptcha.gif");
$colText = imagecolorallocate($captcha, 0, 0, 0);
imagestring($captcha, 5, 16, 7, $textCaptcha, $colText);
header("Content-type: image/gif");
imagegif($captcha);
?>
проблема в том, что если у пользователя установлен YSlow, изображение запрашивается 2 раза, поэтому капча регенерируется иникогда не совпадать с тем, который вставил пользователь.
Я видел, что это всего лишь запрос второй раз, если я передаю заголовок типа содержимого как gif, если я печатаю его как обычный php, этого не происходит.
У кого-нибудь есть подсказки по этому поводу?как я могу предотвратить это или определить, что второй запрос сделан YSlow, чтобы больше не генерировать капчу.
С уважением, Тень.