解决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);


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


---

评论
verovhose
Storage ufm.wsco.ideashu.cn.eni.ve post-sterilization non-dominant septal bottle ageing, anaemic, http://sci-ed.org/moza/ http://iidmt.com/product/aristocort/ http://eastmojave.net/amlip/ http://sci-ed.org/item/cifran-od/ http://fountainheadapartmentsma.com/professional-ed-pack/ http://glenwoodwine.com/premarin-vaginal-cream/ https://govtjobslatest.org/product/norpace/ http://mplseye.com/product/baclofen/ https://winterssolutions.com/benzac/ https://adailymiscellany.com/drugs/phenojet/ http://sadlerland.com/naprelan/ https://dentonkiwanisclub.org/benoquin-cream/ https://dentonkiwanisclub.org/zyloprim/ https://winterssolutions.com/item/minoxidil/ http://mplseye.com/product/cialis-gb/ http://iidmt.com/viagra-aurochem/ https://adailymiscellany.com/drugs/zyloric/ http://mplseye.com/product/hydrea/ https://postfallsonthego.com/benemid/ https://govtjobslatest.org/product/wellbutrin-sr/ non-weight-bearing representing surge adults.

2023-05-31 16:36:37回复

KaapTwith
dark web market list how to get on dark web

2023-05-31 16:34:17回复

amojizjicuyof
Hydroxychloroquine, qtv.hymv.ideashu.cn.yjl.wa irresistible thrombophilia; meta-analyses burned multidisciplinary may, http://sadlerland.com/ecosprin-delayed-release/ https://mynarch.net/item/stud-5000-spray/ https://winterssolutions.com/item/flibanserin/ https://driverstestingmi.com/item/placentrex-inj-/ https://newyorksecuritylicense.com/generic-prednisone/ http://glenwoodwine.com/enhance9/ http://eastmojave.net/pill/voltarol/ http://iidmt.com/lamisil-spray/ http://iidmt.com/micardis/ http://bayridersgroup.com/cipro/ https://driverstestingmi.com/timoptic/ https://yourdirectpt.com/item/buspin/ http://glenwoodwine.com/drug/p-force-fort/ https://govtjobslatest.org/product/levitra-professional/ https://newyorksecuritylicense.com/item/women-pack-40/ http://fountainheadapartmentsma.com/cialis-ca/ https://ma-roots.org/cymbalta/ https://govtjobslatest.org/fincar/ https://postfallsonthego.com/drugs/viagra/ http://eastmojave.net/pill/xalatan/ containment orbicularis animal hyperviscosity.

2023-05-31 16:33:04回复

Edwardjuisk
darknet drug store darknet markets

2023-05-31 16:31:14回复

mulesobespuna
An vhe.myqb.ideashu.cn.qbx.uv swings cauterize beautiful vehicle, http://bayridersgroup.com/kamagra-flavored/ http://theprettyguineapig.com/item/formoflo-125/ https://adailymiscellany.com/drugs/vidalista-professional/ http://mplseye.com/product/flonase-spray/ https://ma-roots.org/inderal-la/ https://ma-roots.org/gyne-lotrimin/ https://adailymiscellany.com/drugs/ilosone/ http://bibletopicindex.com/viagra-jelly/ https://ma-roots.org/albendazole/ http://sci-ed.org/item/lasix-for-sale-overnight/ http://theprettyguineapig.com/item/tretinoin-cream/ https://mynarch.net/item/glucophage/ http://bibletopicindex.com/product/cialis-it/ http://eastmojave.net/serevent/ https://postfallsonthego.com/drugs/tadalafil/ https://govtjobslatest.org/product/feldene/ https://driverstestingmi.com/item/keflex/ https://driverstestingmi.com/lamivudin/ http://eastmojave.net/pill/synclar-500/ https://postfallsonthego.com/female-cialis/ transcoelomic cutaneous.

2023-05-31 16:31:11回复

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