0

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

但是,当我尝试将其添加到现有页面时,它根本不起作用。当我在 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

1 回答 1

4

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

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

您需要将代码放入自己的文件中并像这样嵌入:

<img src="image.php">
于 2009-09-07T10:50:30.377 回答