很多朋友调试之前的php程序或者下载一些开源的php源代码的时候,经常会碰到一些问题。今天我们解读一些php程序验证码图片不显示的原因,以及解决方法。
php程序后台登陆的时候一般都有验证码,验证码采用图片的形势展示,下面是一些常用的php验证码显示源代码
报错信息:
$image = new Image();
define('VALID_CODE_TYPE', 1);
define('VALID_CODE_LENGTH', 4);
$valid = $image->imageValidate(64, 21, VALID_CODE_LENGTH, VALID_CODE_TYPE,'#3e3e3e','#ffffff');
setcookie($cookieName, md5(strtolower($valid)),0);
header("Pragma: no-cache");
header("Cache-control: no-cache");
$image->display();
其中Image类中的display()是非常关键的,图片是不是能显示主要在这个方法中。
很多朋友
查看php报错日志发现有如下的报错信息
PHP Warning: imagejpeg(): Filename cannot be empty in D:\xampp\htdocs\**\common\lib\classes\Image.class.php on line 450
可以尝试用下面的修改方式
将第450行的代码
imagejpeg($imageSrc, $fileName, $quality);
修改为
imagejpeg($imageSrc, NULL, $quality);
如果问题解决,验证码显示正常的话。产生这种错误的原因是php版本的问题,之前的程序在php4版本(或php5.1等)中显示正常,将php升级为PHP5.4等更高版本的时候就发生了一系列的问题。
这是我之前遇到的一些问题,现在在这里记录一下,欢迎大家留言共同探讨。