我们在其中一个项目中使用了Captcha.php,它在所有浏览器中打开,但我们无法在Google Chrome版本22中查看。
我们的Captcha脚本
session_start();
$captcha = new SimpleCaptcha();
$captcha->CreateImage();
class SimpleCaptcha
{
function CreateImage()
{
header("Content-Type: image/jpeg");
$md5 = md5(rand(0,9999));
$pass = substr($md5, 10, 5);
$_SESSION["pass"] = $pass;
$image = ImageCreatetruecolor(100, 20);
$clr_white = ImageColorAllocate($image, 0, 0, 0);
$clr_black = ImageColorAllocate($image, 255, 255, 255);
imagefill($image, 0, 0, $clr_white);
imagefontheight(15);
imagefontwidth(15);
imagestring($image, 5, 30, 3, $pass, $clr_black);
return imagejpeg($image);
imagedestroy($image);
}
}
HTML实施
<img src="code/captcha.php" width="100" height="20" alt="Captcha Code"/>
我们无法在Google Chrome上查看。所有浏览器都返回相同的图像。
答案 0 :(得分:0)
我遇到了同样的问题。刚关掉我的卡巴斯基。现在工作正常。你也可以试试这个。
答案 1 :(得分:0)
你说Chrome会不断渲染相同的图片?尝试发送标题告诉浏览器不要缓存任何内容。
header('Pragma: no-cache');
header('cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 01 Jan 1999 00:00:00 GMT');
答案 2 :(得分:0)
可能与缓存有关,我已经使用了这个脚本:
header('Cache-Control: no-cache, must-revalidate');
这条线应该足够了。
答案 3 :(得分:0)
在Chrome和&amp ;;之间存在一个已知的问题。某些版本的卡巴斯基。
卡巴斯基反病毒软件并不能解决问题,但卡巴斯基终端安全公司确实如此。
出于某种原因,在从Web检索动态创建的图像时,两个应用程序交互期间,标题中的内容长度变为1个字节。
如果您修改标题中的内容长度值,它将在Chrome中运行,但在Firefox,IE和&amp;所有人都正确遵循RFC的Opera。
我不确定哪个应用程序确实存在错误,但它不是您可以轻松修复的内容。
答案 4 :(得分:0)
添加
ob_clean();
为我解决了。
完整示例:
$img = imagecreatefromjpeg('my_image.jpg');
ob_clean();
header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);