织梦后台和留言板验证码不显示的解决方法

时间:2015-08-01所属栏目: dedecms教程 来源: 网络整理 热度:

  • 转移空间后,修改了data文件夹下的comon.inc.php之后,后台验证码突然不显示了,网上的办法几乎都是教你直接去掉后台验证码的,可是只想验证码恢复正常该怎么办呢。用记事本修改comon.inc.php之后,就会被自动加上了bom头,原来是bom头在搞怪。

  • (BOM: Byte Order MarkUTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行)

  • 于是把所有文件的bom头去掉后,后台验证码显示正常了。下面贴出批量去除bom的代码。另存为php文件上传到网站根目录访问即可。

 

 

 

<?php //remove the utf-8 boms //by magicbug at gmail dot com 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); } ?>   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); }
敬告:文章来源于网络 仅供个人学习和参考 版权归属作者所有 禁止商业用途转载!
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)