出现ThInkPHP验证码不显示的情况

官方提示如下:
如果无法显示验证码,请检查:
① PHP是否已经安装GD库支持;
② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出);(打开验证码文件为乱码,也有可能是BOM编码,可查看下方2寻找解决方法)
③ Image类库是否正确导入;
④ 如果是中文验证码检查是否有拷贝字体文件到类库所在目录;

⑤URL_MODEL模式,有些服务器不支持REWRITE 。

针对上面的情况,一一检查

1.可以用phpinfo 查看GD库是否开启,phpinfo打印出来的页面能搜到如下信息,说明安装了GD库

2.复制下面代码,保存为php格式,上传到服务器并运行,再刷新验证码。ps:下面代码作用是把所有文件进行无BOM格式编码

ps:把源代码压缩打包上传到服务器,再用服务器解压的情况,容易出现这种情况。ps:有些服务器打开文件之后,会以BOM格式保存文件。

<?php
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")." <br>";  }else{  $dirname = $basedir."/".$file;  checkdir($dirname);  }  }  }
closedir($dh);
}
}
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 ("<font color=red>BOM found, automatically removed.</font>");  } else {  return ("<font color=red>BOM found.</font>");  }
}
else return ("BOM Not Found.");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>

转载于:https://www.cnblogs.com/MY0101/p/6785651.html

ThInkPHP验证码不显示,解决方法汇总相关推荐

  1. vue IE下验证码无法显示解决方法

    vue IE下验证码无法显示解决方法 使用axios进行get请求,返回格式为文件流可以使用一下方法解决 axios({method: 'get',url: '/verifyCode/authImag ...

  2. Dede后台验证码不显示解决方法详解

    1检查看看有没有开启gd,用<?php phpinfo();?>检查. 2在include/common.inc.php打开错误报告error_reporting(E_ALL); // 报 ...

  3. dedecms教程:后台验证码不显示解决方法

    Dede后台验证码不显示解决方法 ,很多时候dedecms网站后台的验证码不显示,验证码不显示网站后台就没法登陆,常见的验证码后台不显示的情况有以下三种: Dede后台验证码不显示情况一 Dede后台 ...

  4. dedecms教程:Nginx验证码不显示解决方法

    Ngxin关于网上GD库没打开,关掉验证码等等.....都不行. 试过网上所有关于DEDECMS验证码不显示解决方法都不行; 解决方法 打开目录include/vdimgck.php文件; 注销掉,问 ...

  5. 织梦网站在服务器上不显示验证码,dedecms在Nginx服务器上验证码不显示解决方法...

    这篇文章主要为大家介绍了dedecms在Nginx服务器上验证码不显示解决方法,需要的朋友可以参考下 很多使用dedecms的站长都遇到过在Nginx服务器上验证码不显示的情况,查阅相关资料会发现Ng ...

  6. Nginx验证码不显示解决方法

    Ngxin关于网上GD库没打开,关掉验证码等等.....都不行. 试过网上所有关于DEDECMS验证码不显示解决方法都不行; 解决方法 打开目录include/vdimgck.php文件; 注销掉,问 ...

  7. dede 验证码不显示 vdimgck.php,Dede后台验证码不显示解决方法详解(dedecms 5.7)

    本地与服务器上安装了dedecms5.7无法显示验证码,一般这种情况很少见,一般情况就是服务器设置问题,还有临时目录的权限问题. Dede后台验证码不显示或不正常分三种情况,下面来逐一分析 Dede后 ...

  8. Dede后台验证码不显示解决方法详解(dedecms 5.7 UTF-8版本)

    织梦(dede)后台验证码不显示有多种可能性,我前几天测试就碰到了这个问题,结果百度搜索了一圈,挨个修改了下,还是不行,最后是在解决另外一个后台上传图片不成功的问题的时候,歪打正着的把验证码问题给解决 ...

  9. Dede织梦验证码不显示,织梦后台登陆验证码不显示解决方法

    关于"织梦验证码不显示"的解决方法 "织梦验证码无法显示出来"的问题分析? 1.之前显示正常,但是换了服务器后就不能够正常显示:(这种通常是网站程序经过迁移后所 ...

最新文章

  1. 自监督学习新思路!基于蒸馏损失的自监督学习算法 | CVPR 2021
  2. Python logging调用Logger.info方法的处理过程
  3. 函数对象、 函数对象与容器、函数对象与算法
  4. 2017美国人工智能和机器学习行业种子投资首次下降
  5. mysql处理字符串的两个绝招:substring_index,concat
  6. 在Linux上取得Windows上的文件
  7. 互联网分布式微服务云平台规划分析--服务监控中心
  8. ssrs报表服务器数据库配置文件,创建报表服务器数据库(SSRS 配置管理器)
  9. bash漏洞修补, CVE-2014-6271
  10. [zz]为 lua 封装 C 对象的生存期管理问题
  11. mysql concat 日期_mysql group_concat时间用法
  12. 【HihoCoder - 1851】D级上司 (树形图,dfs)
  13. VM虚拟机中 localhost login_UTM 2.0 虚拟机来了,解决上网和无声音问题
  14. svn 提交 working copy is not up-to-date
  15. 什么是MPLS?多协议标签交换
  16. 【数据结构----笔记1】查找算法之【顺序查找和折半查找】
  17. Codeforces Round #446 (Div. 2)
  18. C++ 类使用规范建议
  19. Centos6.5之yum安装LAMP+wordpress
  20. 矩阵卷积、矩阵相乘以及频域相乘之间的关系

热门文章

  1. 2022-2028年中国AKD施胶剂行业市场研究及前瞻分析报告
  2. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册
  3. HA: SHERLOCK 靶机渗透取证
  4. torch.nn.Embedding理解
  5. MindSpore技术理解(上)
  6. 一篇学会HttpServletRequest
  7. C++ 重载运算符 operator
  8. Retrofit 找不到 GsonConverterFactory
  9. ndk 路径修改 超简单的方法
  10. getElementById 使用