小编给大家分享一下php版本低不显示验证码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联公司专注于企业全网营销推广、网站重做改版、十堰网站定制设计、自适应品牌网站建设、html5、商城网站制作、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为十堰等各大城市提供网站开发制作服务。
php版本低不显示验证码的解决办法:1、安装php5-gd所需的依赖;2、创建一个clean.php文件在项目根目录下;3、清除bom即可。
本文操作环境:windows7系统、PHP5版,DELL G3电脑
php版本低不显示验证码怎么办?
PHP5验证码无法显示,GD库正常安装也无法显示的解决方法
自己是做JAVA的,同时也维护了一个直接接手的PHP项目,对PHP是零基础,做了项目的服务器迁移,域名加了https,最后检查能正常访问,细的功能没有完全测试。
突然有一天被投诉注册模块的验证码没办法正常显示(暂时去掉之后进入后台管理模块发现图片上传功能也不正常,估计都是一个问题)。于是就开始网上长达4天间断性寻找解决办法的路程。
其实一般性情况的解决很容易就能找到,一些关键词就是php-gd、php-fpm(本人配置的是nginx)、php.ini、缓存清除。但是debian系统,依赖负责到无法想象,并且每个版本的依赖名还不一样,而当前系统本身又是生产环境服务器,又存在了各种版本的依赖,总之就是头大。
最终在尝试了无数个依赖源,依赖的更新之后还是成功装上了php5-gd所需的依赖。终于phpinfo中也显示除了GD版本信息及支持的图片格式,然而,验证码依然无法显示。。。。。。
在尝试无数搜索关键词之后,"php5装了gd也不显示验证码"终于搜索到了一个帖子,里面提到了BOM头,这一点就明白过来,因为在用crt远程登录服务器编辑一些文件的时候也会有这个BOM头的情况,于是创建一个clean.php文件在项目根目录下,
粘贴如下代码
"; }else{ $dirname = $basedir."/".$file; checkdir($dirname); } } }//end while closedir($dh); }//end if($dh }//end function function checkBOM($filename){ global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){ if($auto == 1){ $rest = substr($contents, 3); rewrite ($filename, $rest); return "BOM found, automatically removed."; }else{ return ("BOM found."); } } else return ("BOM Not Found."); }//end function function rewrite($filename, $data){ $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?>
直接浏览器访问https://url/clean.php
有问题就会看到很多这样的日志,接着重新访问验证码页面
正常访问~
上传图片的问题其实是因为域名改了https而上传模块的配置没改影响到的,加了https也正常了
以上是“php版本低不显示验证码的解决方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
网站标题:php版本低不显示验证码的解决方法
转载来源:http://lswzjz.com/article/jhgegh.html