千家信息网

如何解决php版本低导致验证码不显示的问题

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要讲解了"如何解决php版本低导致验证码不显示的问题",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何解决php版本低导致验证码不显示的问题
千家信息网最后更新 2024年11月22日如何解决php版本低导致验证码不显示的问题

这篇文章主要讲解了"如何解决php版本低导致验证码不显示的问题",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何解决php版本低导致验证码不显示的问题"吧!

1、安装php5-gd所需的依赖。

2、创建一个clean.php文件在项目根目录下。

3、清除bom即可。

在尝试无数搜索关键词之后,"php5装了gd也不显示验证码"终于搜索到了一个帖子,里面提到了BOM头,这一点就明白过来,因为在用crt远程登录服务器编辑一些文件的时候也会有这个BOM头的情况,于是创建一个clean.php文件在项目根目录下

粘贴如下代码

/*清除bom*/if(isset($_GET['dir'])){$basedir=$_GET['dir'];}else{$basedir = '.';}$auto = 1;checkdir($basedir);function checkdir($basedir){if($dh = opendir($basedir)){while(($file = readdir($dh)) !== false){if($file != '.' && $file != '..'){if(!is_dir($basedir."/".$file)){echo "filename: $basedir/$file ".checkBOM("$basedir/$file")."";}else{$dirname = $basedir."/".$file;checkdir($dirname);}}}//end whileclosedir($dh);}//end if($dh}//end functionfunction 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 functionfunction rewrite($filename, $data){$filenum = fopen($filename, "w");flock($filenum, LOCK_EX);fwrite($filenum, $data);fclose($filenum);}?>

直接浏览器访问https://url/clean.php

有问题就会看到很多这样的日志,接着重新访问验证码页面,正常访问。

感谢各位的阅读,以上就是"如何解决php版本低导致验证码不显示的问题"的内容了,经过本文的学习后,相信大家对如何解决php版本低导致验证码不显示的问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0