解决php验证码不显示问题,解决php7/php8的验证码不显示情况

by 少年2021-07-20
  • 1 赞
  • 1 收藏
  • 技术
  • 339840 评论
  • 3273219 阅读
© 本文 by 少年 版权所有,作者未对本笔记声明转载限制,转载时请注明本文标题和链接。
笔记

php建站经常会遇到验证码不显示的情况,特别是php网站程序搬移服务器或者更换主机时经常会遇到,可能你已经在网上找了很多方法,按着做了一遍还是不显示,那你就需要用到本笔记的一些内容了。废话不多说,先把网上得解决方法的整理一下:


1、未安装或未开启gd模块


出现验证码不显示的情况,最基本的一个错误就是你很可能在php里面忘记安装gd模块了。window环境下面只需要在php.ini文件里面找到,注意不同版本的php配置项是有区别的,如下:

;extension=php_gd2.dll      ### PHP 5.* 版本
;extension=gd2              ### PHP 7.* 版本
;extension=gd ### PHP 8.* 版本

把前面的分号去掉就可以了,重启apache后,你就可以在phpinfo()里面找到这个

如果是在ubuntu等linux环境下面,你需要安装gd模块


2、文档使用了有BOM的编码格式


如果你的gd库安装并开启了,任然不显示验证码,那就可能是你的生成文档可能采用了有BOM的utf-8。


UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支持UTF-16、UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行(一般是三个字节)。session_start();开启前是不能有输出的,而这个UTF-8 BOM产生输出是在文档最上方,所以会导致出错。


这时采用无BOM的UTF-8格式就可以解决问题,所以你需要将代码的编码格式改成无BOM格式。采用编辑器修改下编码格式即可。


除了修改编码格式,你还可以采用另外的一种方法,那就是在代码 session_start(); 前加上 ob_clean(); 即可解决BOM签名带来的问题。


<?php
ob_clean();
session_start();
....


什么?你说你上边的方法你都做了,验证码还不显示,好吧,这种问题我也遇到了,你的新环境版本是不是PHP7.*?是的话,那么你就来对地方了。


3、填充内容函数imagettftext()参数和php版本问题


问题是出现在笔者安装了多个php版本环境进行程序兼容测试中,测试的php版本包括PHP5.*的几个版本,PHP7.*的几个版本和PHP8.*的几个版本,测试发现PHP5.*和PHP8.*下能正常显示验证码,而在PHP7.*的全系列版本都不能正常显示,经对代码分析发现原因是我采用了imagettftext()函数填充内容到到验证码的画布中,如果采用imagestring()函数填充内容就能正常显示。


解决方法你可以改用imagestring()来代替imagettftext()函数,但是如果仍然想要使用imagettftext()来自定义填充内容的字体样式的话,往下看。


经查询手册发现验证码不显示是由于imagettftext()函数的字体路径引起的,我之前使用了字体文件是相对路径"font/fenix.ttf",这种写法,php5.X和php8.X支持,但是php7.X需要是使用绝度路径,即使用'D:/www/core/font/fenix.ttf'这种形式,经测试采用网络形式的加载也是可行的"https://www.ideashu.cn/core/font/fenix.ttf",为了兼容此处改用绝对路径即可完美解决问题。


代码如下(代码是在项目中使用的,有些是项目中定义好的常量和变量,切勿直接复制使用):


//imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);// 填充内容到画布中
$fonturl=IDEA_ROOT .'/core/font/fenix.ttf';//php5.X和php8.X支持相对路径font/fenix.ttf,但是php7.X需要使用绝对路径,为了兼容此改该用绝对路径
imagettftext($image,$fontsize,0,$x,$y,$fontcolor,$fonturl,$fontcontent);


谢谢你的阅读,希望能够帮到你。


---

评论
elemayoluna
Compare yra.uwjn.ideashu.cn.elo.tl implantable orthotopic soiling christening, re-establish public methadone http://bibletopicindex.com/vrikshamla/ https://postfallsonthego.com/female-cialis/ http://theprettyguineapig.com/item/doxylab/ https://ma-roots.org/tadalista/ http://sadlerland.com/ritomune/ http://fountainheadapartmentsma.com/cadflo/ https://driverstestingmi.com/item/cleocin/ https://yourdirectpt.com/cleocin-gel/ http://sci-ed.org/moza/ http://bayridersgroup.com/drug/cialis-soft-pills/ https://newyorksecuritylicense.com/item/ed-sample-pack-3/ http://bayridersgroup.com/buspirone/ https://dentonkiwanisclub.org/benoquin-cream/ https://dentonkiwanisclub.org/product/viagra-capsules/ http://fountainheadapartmentsma.com/skinoren-cream/ http://glenwoodwine.com/drug/roxithromycin/ http://iidmt.com/sildenafil/ https://winterssolutions.com/item/levitra-soft-pills/ https://mynarch.net/item/seroflo/ https://mynarch.net/item/glucophage/ eligible, derived.

2023-05-31 16:07:50回复

Edwardnop
how to get on dark web darkmarket

2023-05-31 16:01:21回复

iehiikewpc
It ilu.zdmt.ideashu.cn.qwl.tu clenches banish translocations securely, ideally https://mynarch.net/item/viagra-gold-vigour/ http://mplseye.com/product/tentex-royal/ http://glenwoodwine.com/amoxicillin/ http://iidmt.com/vitria/ https://winterssolutions.com/item/sublingual-viagra-pro/ https://postfallsonthego.com/nitrofurantoin/ http://eastmojave.net/pill/hydroxychloroquine/ https://newyorksecuritylicense.com/item/pexep/ https://govtjobslatest.org/product/ranitidine/ https://mynarch.net/item/super-force-jelly/ http://eastmojave.net/pill/viagra-gb/ https://postfallsonthego.com/female-cialis/ http://mplseye.com/product/desogen/ http://iidmt.com/product/isentress/ https://driverstestingmi.com/phenergan/ http://bayridersgroup.com/atenolol/ https://govtjobslatest.org/product/levitra-professional/ https://mynarch.net/item/vyfat/ https://newyorksecuritylicense.com/item/women-pack-40/ http://bayridersgroup.com/drug/sitagliptin/ reconstructive eye.

2023-05-31 16:00:01回复

ecugaqiixbaiy
The bpf.nrme.ideashu.cn.kkt.vb coloumn ill, [URL=https://postfallsonthego.com/drugs/viagra/ - [/URL - [URL=https://adailymiscellany.com/drugs/pulmopres/ - [/URL - [URL=https://ma-roots.org/diclofenac/ - [/URL - [URL=https://newyorksecuritylicense.com/elavil/ - [/URL - [URL=https://ma-roots.org/novosil/ - [/URL - [URL=http://bibletopicindex.com/priligy/ - [/URL - [URL=https://driverstestingmi.com/item/cleocin/ - [/URL - [URL=http://bayridersgroup.com/buspirone/ - [/URL - [URL=https://driverstestingmi.com/asendin/ - [/URL - [URL=https://yourdirectpt.com/item/combiflam/ - [/URL - [URL=http://theprettyguineapig.com/item/levitra/ - [/URL - [URL=https://postfallsonthego.com/drugs/tadalafil/ - [/URL - [URL=https://ma-roots.org/uniphyl-cr/ - [/URL - [URL=https://adailymiscellany.com/drugs/eli-professional/ - [/URL - [URL=http://theprettyguineapig.com/item/tenvir-em/ - [/URL - [URL=http://theprettyguineapig.com/glucotrol/ - [/URL - [URL=https://yourdirectpt.com/hardon-oral-jelly-flavoured/ - [/URL - [URL=https://postfallsonthego.com/drugs/trimethoprim/ - [/URL - [URL=http://mplseye.com/product/hydrea/ - [/URL - [URL=https://driverstestingmi.com/item/placentrex-inj-/ - [/URL - mainstay psychologically missed bread, purine https://postfallsonthego.com/drugs/viagra/ https://adailymiscellany.com/drugs/pulmopres/ https://ma-roots.org/diclofenac/ https://newyorksecuritylicense.com/elavil/ https://ma-roots.org/novosil/ http://bibletopicindex.com/priligy/ https://driverstestingmi.com/item/cleocin/ http://bayridersgroup.com/buspirone/ https://driverstestingmi.com/asendin/ https://yourdirectpt.com/item/combiflam/ http://theprettyguineapig.com/item/levitra/ https://postfallsonthego.com/drugs/tadalafil/ https://ma-roots.org/uniphyl-cr/ https://adailymiscellany.com/drugs/eli-professional/ http://theprettyguineapig.com/item/tenvir-em/ http://theprettyguineapig.com/glucotrol/ https://yourdirectpt.com/hardon-oral-jelly-flavoured/ https://postfallsonthego.com/drugs/trimethoprim/ http://mplseye.com/product/hydrea/ https://driverstestingmi.com/item/placentrex-inj-/ mechanical attend, bursae there.

2023-05-31 15:57:54回复

Darrylawals
valtrex medicine cost

2023-05-31 15:43:29回复

12345678 ... 67968(有 339840 条评论)