2009-09-07 54 views
0

我试图添加一个验证码到其他人的网站上。 我一直在关注this教程,如果我让它在一个单独的文件,它工作得很好(所以它不是与服务器设置的问题)验证码和标题有问题(PHP)

然而,当我尝试将其添加到现有的页面,它根本不工作。当我打开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); 

任何意见将不胜感激。谢谢。

回答

4

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

发生什么事情是将PNG数据转储到您的HTML文件中,而不是通过<img>标记链接到它。

你需要把代码放到自己的文件,它嵌入这样的:

<img src="image.php">