0

我制作了这段代码,它应该向我展示一个带有文本的图像,但该图像不会出现。任何的想法?

<?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);

?>
4

5 回答 5

0

检查您的 PHP 错误日志文件,在我的本地主机上,您的代码有几个错误。

于 2012-05-11T09:16:31.377 回答
0

您不能使用mktime这种方式,您会收到以下错误Strict standards: mktime() [function.mktime],这不会使您的图像显示

代替

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

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

你的输出

在此处输入图像描述

于 2012-05-11T09:17:37.277 回答
0

此脚本在我的本地主机上正常运行。请检查bg.png您的文件夹中是否存在。因为如果 bg.png 没有找到它会产生错误。

谢谢

于 2012-05-11T09:19:58.927 回答
0

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

于 2012-05-11T09:20:24.697 回答
0

采用:

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

代替:

$captcha = imagecreatefrompng('bg.png');
于 2012-05-11T09:32:14.830 回答