PHP验证码不会显示图像

时间:2012-05-11 09:11:02

标签: php captcha

我制作了这个代码,它应该向我展示一个带有文字的图像,但图像不会出现。有什么想法吗?

<?php

    header("Content-type: image/png"); 
    $md5 = md5(microtime() * mktime()); 

    $string = substr($md5,0,5);

    $captcha = imagecreatefrompng('bg.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); 

    imagepng($captcha);
    imagedestroy($captcha);

?>

5 个答案:

答案 0 :(得分:0)

检查您的PHP错误日志文件,在我的本地主机上,我的代码出现了一些错误。

答案 1 :(得分:0)

您不能以mktime方式使用以下错误Strict standards: mktime() [function.mktime],这会导致您的图片无法显示

替换

$md5 = md5(microtime() * mktime());

$md5 = md5(microtime() * time()); 

您的输出

enter image description here

答案 2 :(得分:0)

此脚本在我的localhost上正常运行。请检查文件夹中是否存在bg.png。因为如果找不到bg.png则会产生错误。

感谢

答案 3 :(得分:0)

它也适用于我。 您应该检查图像的路径

答案 4 :(得分:0)

使用:

$captcha = imagecreatefrompng(dirname(__FILE__) . '/bg.png'); 

而不是:

$captcha = imagecreatefrompng('bg.png');