验证码和标题有问题(PHP)

时间:2009-09-07 10:45:39

标签: php header captcha

我正在尝试为其他人制作的网站添加验证码。 我一直在关注this教程,如果我在一个单独的文件中创建它,它工作得很好(所以它不是服务器设置的问题)

但是,当我尝试将其添加到现有页面时,它根本不起作用。当我在Internet Explorer中加载页面时,源代码将显示随机字符,其中应显示图像,如:

‰PNGIHDRé1°8ö[IDATxœÍ]kp×u>»X‹± (4  ›–9¦:‰-C£V™©4–[ÓL•4“Dm~„njR3ª]*qÒÚ‰£ŽãD–&~Ô±ØØŽ$

在Firefox中,我收到消息:无法显示图像“myurl”,因为它包含错误。

我认为这与标题有关,但我不太确定。

这是我用来创建图片的代码:

$md5 = md5(microtime() * mktime());
$string = substr($md5,0,5);
$captcha = imagecreatefrompng("./captcha.png");
$black = imagecolorallocate($captcha, 0, 0, 0);
$line = imagecolorallocate($captcha,233,239,239);
imageline($captcha,0,0,39,29,$line);
imageline($captcha,40,0,64,29,$line);
imagestring($captcha, 5, 20, 10, $string, $black);
$_SESSION['key'] = md5($string);
header("Content-type: image/png");
imagepng($captcha);

任何建议都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:4)

这些随机字符实际上是PNG文件的内容。

您正在将PNG数据转储到HTML文件中,而不是使用<img>标记链接到该文件。

您需要将代码放入自己的文件中,并将其嵌入:

<img src="image.php">