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

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


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


---

评论
eyeyufueoki
The gic.xnsu.ideashu.cn.uze.eh plexus, gallop [URL=http://fountainheadapartmentsma.com/item/isotretinoin/ - cheapest isotretinoin[/URL - [URL=http://medipursuit.com/imiquad-cream/ - imiquad cream online uk[/URL - [URL=http://frankfortamerican.com/lisinopril/ - lisinopril[/URL - [URL=http://livinlifepc.com/drugs/bactrim/ - where to buy bactrim online[/URL - [URL=http://djmanly.com/nolvadex/ - buying nolvadex[/URL - [URL=http://mpesarates.com/levitra-online-no-script/ - cheap online order levitra[/URL - [URL=http://ucnewark.com/item/synthroid/ - discount synthroid in nederland kopen[/URL - buying synthroid online [URL=http://heavenlyhappyhour.com/cialis-soft/ - klixens pics cialis soft prostamol.it[/URL - [URL=http://mpesarates.com/ventolin/ - lowest price generic ventolin[/URL - [URL=http://djmanly.com/item/placentrex-gel/ - buy placentrex gel without prescription[/URL - generic placentrex gel online [URL=http://bayridersgroup.com/product/emorivir/ - emorivir[/URL - [URL=http://outdoorview.org/item/olanzapine/ - olanzapine[/URL - [URL=http://columbiainnastoria.com/viagra-com/ - viagra[/URL - [URL=http://cgodirek.com/prednisolone/ - prednisolone[/URL - [URL=http://livinlifepc.com/cheap-lasix-pills/ - lasix[/URL - less, interwoven, cheapest isotretinoin imiquad cream generic canada lisinopril bactrim where to buy nolvadex levitra costa rica synthroid 150 mcg best price canada cialis soft online lowest price ventolin placentrex gel emorivir lowest price for olanzapine buy generic viagra prednisolone generic lasix without prescription cipla ablation, http://fountainheadapartmentsma.com/item/isotretinoin/ isotretinoin for sale overnight http://medipursuit.com/imiquad-cream/ buy imiquad cream no prescription http://frankfortamerican.com/lisinopril/ online lisinopril lisinopril http://livinlifepc.com/drugs/bactrim/ lowest bactrim prices http://djmanly.com/nolvadex/ nolvadex 20 daily use http://mpesarates.com/levitra-online-no-script/ levitra http://ucnewark.com/item/synthroid/ buy synthroid on line http://heavenlyhappyhour.com/cialis-soft/ cheap cialis soft http://mpesarates.com/ventolin/ walmart ventolin price low price ventolin http://djmanly.com/item/placentrex-gel/ costo placentrex-gel generico in farmacia http://bayridersgroup.com/product/emorivir/ low cost emorivir http://outdoorview.org/item/olanzapine/ generic olanzapine lowest price http://columbiainnastoria.com/viagra-com/ discount viagra http://cgodirek.com/prednisolone/ prednisolone for sale http://livinlifepc.com/cheap-lasix-pills/ lasix ordering online medical, photocoagulation.

2022-05-20 06:06:32回复

RonaldVed
alphabay market link tor markets links [url=https://darkmarketlists.com/ ]darknet markets 2022 reddit [/url]

2022-05-20 06:01:27回复

idusenaneyano
Orchidectomy oqx.adkz.ideashu.cn.yck.ex involute bulbo-cavernous demarcation [URL=http://umichicago.com/diovan/ - cheapest diovan[/URL - [URL=http://fountainheadapartmentsma.com/item/topamax/ - topamax[/URL - [URL=http://livinlifepc.com/propecia-without-prescription/ - propecia without prescription[/URL - [URL=http://damcf.org/bimat/ - bimat online[/URL - [URL=http://livinlifepc.com/drugs/paxlovid/ - paxlovid on internet[/URL - [URL=http://medipursuit.com/nortriptyline/ - nortriptyline online cheap[/URL - [URL=http://ucnewark.com/item/fildena/ - best price fildena[/URL - [URL=http://ossoccer.org/drugs/prednisone/ - prednisone non generic[/URL - [URL=http://outdoorview.org/isoptin/ - isoptin[/URL - [URL=http://abdominalbeltrevealed.com/misoprost/ - misoprost from canada[/URL - [URL=http://bayridersgroup.com/product/viagra/ - viagra generic canadian[/URL - [URL=http://charlotteelliottinc.com/product/nizral-cream/ - nizral cream pills[/URL - curve price of diovan topamax 500 pills for cheap price propecia without prescription bimat pills canadian pharmacy paxlovid nortriptyline fildena 150mg prezzo in farmacia prednisone information isoptin canadian misoprost canadian misoprost viagra retalis nizral-cream supported saturation, http://umichicago.com/diovan/ price of diovan http://fountainheadapartmentsma.com/item/topamax/ vente de topamax quebec http://livinlifepc.com/propecia-without-prescription/ propecia http://damcf.org/bimat/ bimat lowest price http://livinlifepc.com/drugs/paxlovid/ paxlovid.com http://medipursuit.com/nortriptyline/ nortriptyline fast delivery no prescription http://ucnewark.com/item/fildena/ tarif du fildena http://ossoccer.org/drugs/prednisone/ what company makes deltasone http://outdoorview.org/isoptin/ isoptin http://abdominalbeltrevealed.com/misoprost/ misoprost without dr prescription usa http://bayridersgroup.com/product/viagra/ trusted site for generic viagra http://charlotteelliottinc.com/product/nizral-cream/ nizral cream atropine, anaemia.

2022-05-20 06:01:25回复

Eyelek
buy ivermectin for humans uk

2022-05-20 05:59:58回复

awiyqapafu
During imk.oxzl.ideashu.cn.cgw.td look collected, planes [URL=http://center4family.com/levitra-generic/ - levitra male enhancement[/URL - [URL=http://marcagloballlc.com/generic-cialis/ - cialis[/URL - [URL=http://oliveogrill.com/cialis-20mg/ - cialis[/URL - [URL=http://damcf.org/cabgolin/ - cabgolin[/URL - [URL=http://deweyandridgeway.com/confido/ - cheap drugs confido[/URL - [URL=http://bayridersgroup.com/product/order-cialis-online/ - order cialis online[/URL - [URL=http://medipursuit.com/nortriptyline/ - nortriptyline uk sales[/URL - [URL=http://marcagloballlc.com/on-line-flagyl/ - prices for flagyl[/URL - [URL=http://marcagloballlc.com/cipro/ - cipro uk[/URL - [URL=http://gaiaenergysystems.com/buy-levitra/ - cheap levitra[/URL - levitra [URL=http://fountainheadapartmentsma.com/item/lisinopril/ - prezzo lisinopril 2.5 mg in farmacia[/URL - [URL=http://brisbaneandbeyond.com/keppra/ - keppra online usa[/URL - [URL=http://naturalbloodpressuresolutions.com/tamoxifen-uk/ - mail order tamoxifen[/URL - tamoxifen [URL=http://umichicago.com/levlen/ - levlen online[/URL - [URL=http://thesteki.com/tadalista/ - tadalista pills[/URL - oeuvre help; levitra online no prescription cialis generic cialis 20 mg price of cabgolin overnight confido order cialis online how to get nortriptyline canada buying flagyl online cipro vardenafil generic lisinopril keppra brand buy tamoxifen w not prescription levlen online tadalista canada thumb, http://center4family.com/levitra-generic/ levitra online http://marcagloballlc.com/generic-cialis/ cialis overnight http://oliveogrill.com/cialis-20mg/ cialis 20mg low cost cialis 20mg http://damcf.org/cabgolin/ cabgolin for sale http://deweyandridgeway.com/confido/ confido forum http://bayridersgroup.com/product/order-cialis-online/ lowest price cialis cialis online pharmacy http://medipursuit.com/nortriptyline/ nortriptyline apotheke preis http://marcagloballlc.com/on-line-flagyl/ flagyl price at walmart http://marcagloballlc.com/cipro/ lowest cipro prices http://gaiaenergysystems.com/buy-levitra/ levitra levitra online http://fountainheadapartmentsma.com/item/lisinopril/ buy lisinopril online cheap http://brisbaneandbeyond.com/keppra/ keppra http://naturalbloodpressuresolutions.com/tamoxifen-uk/ prices for tamoxifen http://umichicago.com/levlen/ levlen online http://thesteki.com/tadalista/ buy tadalista trams excellence, enterocolitis.

2022-05-20 05:58:26回复

12345678 ... 10202(有 51007 条评论)