题目:
毛病一:
最基本的一个毛病就是你很能够在php内里遗忘装置gd模块了。window环境下面只须要在php.ini文件内里找到:
;extension=php_gd2.dll
把前面的分号去掉就能够了,重启apache后,你就能够在phpinfo()内里找到这个:
假如是在ubuntu环境下面,你须要装置gd模块,敕令是:
sudo apt-get install php5-gd
装置好了今后,也能够看到上面的模块。
毛病二:
假如小伙伴阅历上面的装置后,发明照样没有用,那末就多是下面的题目了。
你的代码很多是运用了像editpuls或许notepad++如许的文本编辑器编辑的,那末他们的默许编码花样就是有BOM的utf-8。UTF-8 BOM又叫UTF-8 署名,实在UTF-8 的BOM对UFT-8没有作用,是为了支撑UTF-16,UTF-32才加上的BOM,BOM署名的意义就是通知编辑器当前文件采纳何种编码,轻易编辑器辨认,然则BOM虽然在编辑器中不显现,然则会发生输出,就像多了一个空行。
平常我用UTF-8无BOM花样,所以你须要将代码的编码花样改成无BOM花样。
毛病三:
假如人人阅历上面的两个步骤发明照样不起作用,那就要祭出杀手锏了。运用ob_clean()了,消灭一下缓存。ob_clean这个函数的作用就是用来抛弃输出缓冲区中的内容,假如你的有很多生成的图片类文件,那末想要接见准确,就要常常消灭缓冲区。
public function create() { ob_clean(); $a = new verify(); session::set('captcha', strtolower($a->create(4, 15))); view::assign("captcha", $a); view::display("captcha"); exit(0); }
注重:
人人假如运用较高的php版本,那末不能运用未定义变量,不然会报notice毛病,$new_number和$_SESSION['check_checks']在运用前必须用isset推断一下或许你用老代码的话在最最先处加上error_reporting(E_ALL & ~E_NOTICE);屏蔽掉notice毛病(不引荐),所以用isset()推断一下,来确保它被定义了,不然也有能够显现不出来验证码。
引荐教程:PHP视频教程
以上就是php图片验证码不显现的细致内容,更多请关注ki4网别的相干文章!