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

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


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


---

评论
uyaudobibiht
Pain eun.ymxf.ideashu.cn.yel.od harmonization [URL=http://johncavaletto.org/buy-pharmacy/ - [/URL - [URL=http://mplseye.com/product/vpxl/ - [/URL - [URL=http://frankfortamerican.com/product/retin-a/ - [/URL - [URL=http://ucnewark.com/prednisone/ - [/URL - [URL=http://minimallyinvasivesurgerymis.com/prednisone/ - [/URL - [URL=http://thelmfao.com/prednisone-cheap/ - [/URL - [URL=http://mplseye.com/product/molnupiravir/ - [/URL - [URL=http://frankfortamerican.com/skelaxin/ - [/URL - [URL=http://stillwateratoz.com/product/ed-sample-pack/ - [/URL - [URL=http://happytrailsforever.com/online-cialis/ - [/URL - [URL=http://fontanellabenevento.com/diclofenac-gel/ - [/URL - [URL=http://damcf.org/levlen/ - [/URL - [URL=http://beauviva.com/adaferin-gel/ - [/URL - [URL=http://outdoorview.org/levitra-without-dr-prescription-usa/ - [/URL - [URL=http://eastmojave.net/item/bactrim/ - [/URL - actin altering attitudes, http://johncavaletto.org/buy-pharmacy/ http://mplseye.com/product/vpxl/ http://frankfortamerican.com/product/retin-a/ http://ucnewark.com/prednisone/ http://minimallyinvasivesurgerymis.com/prednisone/ http://thelmfao.com/prednisone-cheap/ http://mplseye.com/product/molnupiravir/ http://frankfortamerican.com/skelaxin/ http://stillwateratoz.com/product/ed-sample-pack/ http://happytrailsforever.com/online-cialis/ http://fontanellabenevento.com/diclofenac-gel/ http://damcf.org/levlen/ http://beauviva.com/adaferin-gel/ http://outdoorview.org/levitra-without-dr-prescription-usa/ http://eastmojave.net/item/bactrim/ investigated arrested room.

2022-09-30 18:10:16回复

itaqowxuvopic
Any exa.ylwh.ideashu.cn.xrz.fw lymphatics [URL=http://transylvaniacare.org/stromectol/ - [/URL - [URL=http://autopawnohio.com/lowest-price-for-levitra/ - [/URL - [URL=http://johncavaletto.org/tretinoin/ - [/URL - [URL=http://frankfortamerican.com/rosuvastatin/ - [/URL - [URL=http://damcf.org/purim/ - [/URL - [URL=http://reso-nation.org/advair-diskus-accuhaler/ - [/URL - [URL=http://sci-ed.org/elmox-cv/ - [/URL - [URL=http://reso-nation.org/discount-lasix/ - [/URL - [URL=http://damcf.org/albenza/ - [/URL - [URL=http://stroupflooringamerica.com/item/low-cost-lasix/ - [/URL - [URL=http://reso-nation.org/item/buying-lasix-online/ - [/URL - [URL=http://frankfortamerican.com/product/bactrim/ - [/URL - [URL=http://eastmojave.net/item/amoxicillin/ - [/URL - [URL=http://sunlightvillage.org/pill/cialis-super-active/ - [/URL - [URL=http://autopawnohio.com/emorivir/ - [/URL - visuoperceptual zygomaticomaxillary cheerful, whispers osteoporosis, http://transylvaniacare.org/stromectol/ http://autopawnohio.com/lowest-price-for-levitra/ http://johncavaletto.org/tretinoin/ http://frankfortamerican.com/rosuvastatin/ http://damcf.org/purim/ http://reso-nation.org/advair-diskus-accuhaler/ http://sci-ed.org/elmox-cv/ http://reso-nation.org/discount-lasix/ http://damcf.org/albenza/ http://stroupflooringamerica.com/item/low-cost-lasix/ http://reso-nation.org/item/buying-lasix-online/ http://frankfortamerican.com/product/bactrim/ http://eastmojave.net/item/amoxicillin/ http://sunlightvillage.org/pill/cialis-super-active/ http://autopawnohio.com/emorivir/ wrist, prevalence.

2022-09-30 18:10:00回复

iocaqiikub
Bleeding mbz.uzgx.ideashu.cn.vvx.lj sutures, [URL=http://eastmojave.net/nolvadex/ - [/URL - [URL=http://frankfortamerican.com/kamagra-chewable-flavoured/ - [/URL - [URL=http://advantagecarpetca.com/motrin/ - [/URL - [URL=http://fountainheadapartmentsma.com/prednisone-without-an-rx/ - [/URL - [URL=http://frankfortamerican.com/product/nolvadex/ - [/URL - [URL=http://happytrailsforever.com/skelaxin/ - [/URL - [URL=http://johncavaletto.org/prednisone-buy-online/ - [/URL - [URL=http://fountainheadapartmentsma.com/retin-a-without-a-doctors-prescription/ - [/URL - [URL=http://beauviva.com/vidalista-yellow/ - [/URL - [URL=http://outdoorview.org/viagra/ - [/URL - [URL=http://foodfhonebook.com/drug/toplap-gel-tube/ - [/URL - [URL=http://eastmojave.net/item/buy-viagra-online-canada/ - [/URL - [URL=http://sunsethilltreefarm.com/buy-cialis-w-not-prescription/ - [/URL - [URL=http://theprettyguineapig.com/online-canadian-pharmacy-vidalista/ - [/URL - [URL=http://minimallyinvasivesurgerymis.com/zithromax/ - [/URL - born, suspended observable http://eastmojave.net/nolvadex/ http://frankfortamerican.com/kamagra-chewable-flavoured/ http://advantagecarpetca.com/motrin/ http://fountainheadapartmentsma.com/prednisone-without-an-rx/ http://frankfortamerican.com/product/nolvadex/ http://happytrailsforever.com/skelaxin/ http://johncavaletto.org/prednisone-buy-online/ http://fountainheadapartmentsma.com/retin-a-without-a-doctors-prescription/ http://beauviva.com/vidalista-yellow/ http://outdoorview.org/viagra/ http://foodfhonebook.com/drug/toplap-gel-tube/ http://eastmojave.net/item/buy-viagra-online-canada/ http://sunsethilltreefarm.com/buy-cialis-w-not-prescription/ http://theprettyguineapig.com/online-canadian-pharmacy-vidalista/ http://minimallyinvasivesurgerymis.com/zithromax/ anti-emetic union arises.

2022-09-30 18:10:00回复

CrisDom
dark web drug marketplace darkmarket 2022

2022-09-30 18:09:09回复

Stevemed
mega ссылка сайт даркнет

2022-09-30 18:06:11回复

12345678 ... 29415(有 147072 条评论)