PHP解决验证码无法显示的方法:
第一步:先确保代码没有写错!!!(可以通过简单的提取需要的代码进行测试)
第二步:确保php绘画技术扩展gd库的开启;在php.ini在设置:extension=php_gd2.dll
第三步:清除缓存区:PHP关于缓存区的三个函数(非常重要):
ob_get_contents() - 返回输出缓冲区的内容
ob_flush() - 冲刷出(送出)输出缓冲区中的内容
ob_clean() - 清空(擦掉)输出缓冲区
ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲
ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲
flush() - 刷新输出缓冲
当验证码图片无法显示时,在测试阶段(注释header(“content-type:image/png”)?,却能够显示图片的信息;在你找不到原因时:最有可能的是缓存区的问题;试着在运行的代码中添加ob_clean();
第四步:重新启动Apache服务器,再次运行!也许会有惊人的发现哦!谢谢!以上就是本人在运行过程中的解决方法,望大家能够一起学习!
附上我编写的代码供大家参考:
//Captcha.class.php文件名
<?php
//定义最终的图像验证码类
final class Captcha{
//私有的成员属性
private $code;//验证码字符串
private $codelen;//验证码长度
private $width; //画布宽度
private $height; //画布高度
private $img; //图像资源
private $fontsize; //字号大小
private $fontfile; //字体文件
//构造方法:对象初始化
public function __construct($codelen=4,$width=100,$height&