| 帝国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代码如下:<?phpif (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);
 }
 ?>
   |