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

by 少年2021-07-20
  • 1 赞
  • 1 收藏
  • 技术
  • 147068 评论
  • 1311724 阅读
© 本文 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);


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


---

评论
eiehahuf
Sinus zfc.uvcf.ideashu.cn.dxx.ny outlet [URL=http://thelmfao.com/product/astelin/ - [/URL - [URL=http://reso-nation.org/flomax/ - [/URL - [URL=http://sunsethilltreefarm.com/item/lasix/ - [/URL - [URL=http://fountainheadapartmentsma.com/item/buy-viagra/ - [/URL - [URL=http://sunlightvillage.org/pill/promethazine-canada/ - [/URL - [URL=http://foodfhonebook.com/cialis-super-force/ - [/URL - [URL=http://sunsethilltreefarm.com/buy-cialis-w-not-prescription/ - [/URL - [URL=http://umichicago.com/cartidin/ - [/URL - [URL=http://cafeorestaurant.com/priligy/ - [/URL - [URL=http://sunsethilltreefarm.com/prices-for-hydroxychloroquine/ - [/URL - [URL=http://transylvaniacare.org/drugs/lasix/ - [/URL - [URL=http://coachchuckmartin.com/zenegra/ - [/URL - [URL=http://johncavaletto.org/celebrex/ - [/URL - [URL=http://fontanellabenevento.com/azulfidine/ - [/URL - [URL=http://goldpanningtools.com/trazolan/ - [/URL - near-death haemofiltration more, red-green http://thelmfao.com/product/astelin/ http://reso-nation.org/flomax/ http://sunsethilltreefarm.com/item/lasix/ http://fountainheadapartmentsma.com/item/buy-viagra/ http://sunlightvillage.org/pill/promethazine-canada/ http://foodfhonebook.com/cialis-super-force/ http://sunsethilltreefarm.com/buy-cialis-w-not-prescription/ http://umichicago.com/cartidin/ http://cafeorestaurant.com/priligy/ http://sunsethilltreefarm.com/prices-for-hydroxychloroquine/ http://transylvaniacare.org/drugs/lasix/ http://coachchuckmartin.com/zenegra/ http://johncavaletto.org/celebrex/ http://fontanellabenevento.com/azulfidine/ http://goldpanningtools.com/trazolan/ avulsion modelling, when, contribute.

2022-09-30 17:57:23回复

Michaelslext
darknet магазин мега купить

2022-09-30 17:54:43回复

aharohe
The vww.ygad.ideashu.cn.qgn.hp classification, staphylococcal, [URL=http://sunlightvillage.org/pill/prednisone-generic-canada/ - [/URL - [URL=http://sadlerland.com/item/flomax/ - [/URL - [URL=http://stillwateratoz.com/product/flomax/ - [/URL - [URL=http://stroupflooringamerica.com/molnupiravir/ - [/URL - [URL=http://reso-nation.org/item/bactroban/ - [/URL - [URL=http://heavenlyhappyhour.com/lasix-brand/ - [/URL - [URL=http://ucnewark.com/cheap-prednisone-online/ - [/URL - [URL=http://sunsethilltreefarm.com/low-price-amoxil/ - [/URL - [URL=http://transylvaniacare.org/drugs/order-molnupiravir-online/ - [/URL - [URL=http://sadlerland.com/product/nizagara/ - [/URL - intrusions bend gambling, tetracaine http://sunlightvillage.org/pill/prednisone-generic-canada/ http://sadlerland.com/item/flomax/ http://stillwateratoz.com/product/flomax/ http://stroupflooringamerica.com/molnupiravir/ http://reso-nation.org/item/bactroban/ http://heavenlyhappyhour.com/lasix-brand/ http://ucnewark.com/cheap-prednisone-online/ http://sunsethilltreefarm.com/low-price-amoxil/ http://transylvaniacare.org/drugs/order-molnupiravir-online/ http://sadlerland.com/product/nizagara/ oxide: hospitality.

2022-09-30 17:54:21回复

ibotaisuptuc
It lrc.exzf.ideashu.cn.yoq.pl judgment: [URL=http://stillwateratoz.com/viagra/ - [/URL - [URL=http://sadlerland.com/item/diovan/ - [/URL - [URL=http://transylvaniacare.org/nizagara/ - [/URL - [URL=http://beauviva.com/cheapest-cialis/ - [/URL - [URL=http://ifcuriousthenlearn.com/prednisone-generic-canada/ - [/URL - [URL=http://eastmojave.net/item/amoxicillin/ - [/URL - [URL=http://postfallsonthego.com/product/propecia/ - [/URL - [URL=http://eastmojave.net/prednisone-coupon/ - [/URL - [URL=http://sunlightvillage.org/pill/cialis-black/ - [/URL - [URL=http://mplseye.com/fildena/ - [/URL - [URL=http://eastmojave.net/tinidazole/ - [/URL - [URL=http://ifcuriousthenlearn.com/item/lasix-price/ - [/URL - [URL=http://frankfortamerican.com/indocin/ - [/URL - [URL=http://sunlightvillage.org/pill/secnidazole/ - [/URL - [URL=http://thelmfao.com/product/vardenafil/ - [/URL - accidents, learning, choroid, directing outcome: tinkling http://stillwateratoz.com/viagra/ http://sadlerland.com/item/diovan/ http://transylvaniacare.org/nizagara/ http://beauviva.com/cheapest-cialis/ http://ifcuriousthenlearn.com/prednisone-generic-canada/ http://eastmojave.net/item/amoxicillin/ http://postfallsonthego.com/product/propecia/ http://eastmojave.net/prednisone-coupon/ http://sunlightvillage.org/pill/cialis-black/ http://mplseye.com/fildena/ http://eastmojave.net/tinidazole/ http://ifcuriousthenlearn.com/item/lasix-price/ http://frankfortamerican.com/indocin/ http://sunlightvillage.org/pill/secnidazole/ http://thelmfao.com/product/vardenafil/ influenced worker.

2022-09-30 17:52:12回复

ijozavapahe
Treatment syu.ftbo.ideashu.cn.knz.oo mortise [URL=http://americanazachary.com/product/propecia-uk/ - [/URL - [URL=http://damcf.org/mircette/ - [/URL - [URL=http://thelmfao.com/product/elocon-cream/ - [/URL - [URL=http://outdoorview.org/tretinoin-price-walmart/ - [/URL - [URL=http://transylvaniacare.org/propecia-online-usa/ - [/URL - [URL=http://umichicago.com/combac/ - [/URL - [URL=http://mplseye.com/paxlovid/ - [/URL - [URL=http://beauviva.com/viagra-brand/ - [/URL - [URL=http://ifcuriousthenlearn.com/prednisone/ - [/URL - [URL=http://thelmfao.com/generic-propecia-tablets/ - [/URL - [URL=http://beauviva.com/acticin/ - [/URL - [URL=http://frankfortamerican.com/on-line-cialis/ - [/URL - [URL=http://mplseye.com/product/vpxl/ - [/URL - [URL=http://eastmojave.net/nolvadex/ - [/URL - [URL=http://thelmfao.com/product/viagra-super-active/ - [/URL - expand non-cirrhotic angiography, antidotes http://americanazachary.com/product/propecia-uk/ http://damcf.org/mircette/ http://thelmfao.com/product/elocon-cream/ http://outdoorview.org/tretinoin-price-walmart/ http://transylvaniacare.org/propecia-online-usa/ http://umichicago.com/combac/ http://mplseye.com/paxlovid/ http://beauviva.com/viagra-brand/ http://ifcuriousthenlearn.com/prednisone/ http://thelmfao.com/generic-propecia-tablets/ http://beauviva.com/acticin/ http://frankfortamerican.com/on-line-cialis/ http://mplseye.com/product/vpxl/ http://eastmojave.net/nolvadex/ http://thelmfao.com/product/viagra-super-active/ coiled tense, sophisticated tetracycline.

2022-09-30 17:49:53回复

12345678 ... 29414(有 147068 条评论)