今天是公元: 20250504日 星期   农历: 乙巳初七 2加入收藏 | 设为首页 | 会员中心
您当前的位置:首页 > 科文与生活 > 网站网页

帝国CMS验证码不显示或打叉解决方法

日期:2024-05-05   来源:本站整理   点击:33

帝国CMS(utf-8版本)验证码不显示或打叉,有两种情况:1.主机空间GD没有打开,2.有用记事本打开过php文件,出现BOM。

1、检查服务器是否开启GD库

测试GD库是否开启的方法:浏览器访问:/e/showkey/index.php,如果出现一堆乱码或报错,证明GD库没有开启,开启即可。

2、删除config.php的BOM头代码

新建chk_bom.php, 把这个文件上传网站根目录,上传之后运行输入网址:http://www.你的网站域名/1.php,运行完了就把这个文件删除。

执行chk_bom.php时,如果采用$basedir = '.',检查网站下的所有文件,有可能会引起网站主页访问时出现403 - Forbidden: Access is denied (短时间内访问过于频繁,拒绝访问),慎重注意。

chk_bom.php代码如下:

<?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);
}
?>

 

上一篇: 帝国cms默认附件存放目录如何修改
下一篇: 帝国CMS管理系统必做的安全防护设置
相关文章
热门文章
  1. replace正则表达式替换前导空格和后导空
  2. 帝国CMS管理系统必做的安全防护设置
  3. ASCII码控制字符、可显示字符、扩展字符
  4. 常用正则表达式大全
  5. PHP读取TXT类文本内容方法,替换指定内容
  6. 帝国CMS多表联合调用最新和热门信息的方
  7. 帝国ECMS列表模板list.var中新发布的新闻
  8. 帝国CMS COOKIE 及其管理员/会员 登陆信
  9. 帝国CMS系统标签e:loop调用的附加SQL条件
  10. 帝国cms系统 常用内置字段与调用方法
   关于我们
服务联系
新闻公告
好正好教育
好正好软件(教育管理)
Copyright (c) 2024 好正好教育