dede后台空白解决

DEDE的UTF-8编码存在问题,在国内空间一般都用的GB,很少用UTF-8的,所以出现问题的人不多。

一般出现问题的现象有2个:

1:直接打开后台地址是空白,比如打开/dede,显示是空白。必须这样打开:

dede/login.php

2:发布内容显示空白

 

出现问题的原因很简单,include文件夹下面的common.inc.php文件存在BOM标签,这在LINUX环境下就会出错。这个BOM标签很麻烦,用Dreamweaver或者记事本另存为UTF-8好象都去不了这个标签。

大家可以试下用以下php程序去BOM标签法:

 

将以下代码另存为比如:bom.php,然后将bom.php和common.inc.php放在同一个目录下

再从地址栏访问bom.php,这样bom.php就会查找本目录下所有包含BOM标签的文件并去除。

访问路径如:http://127.0.0.1/bom/bom.php

程序原码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>去BOM标签</title>
</head>

<body>
<?php  
//remove the utf-8 boms  
//by magicbug at gmail dot com  
if (isset($_GET['dir'])){
//config the basedir  
     $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);
     }
?>

</body>
</html>

 

 

 

今天在DEDE后台安装插件出现问题,导致后台变成空白,再回头登陆时,登陆页面也是一片空白,查看源代码也是一片空白,在网上找了些资料,参考如下资料解决了DEDE后台登录变成一片空白的问题。

找到:include/common.inc.php文件,打开,查找程序代码:

//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE); 

替换为:

error_reporting(E_ALL); 
//error_reporting(E_ALL || ~E_NOTICE);

这一步很重要,因为它会告诉你为什么变成空白的提示信息,保存之后再次进入管理后台,这个时候会发现后台会有一句话提示了,原文提示是:

Parse error: parse error in D:\wwwroot\pcpps\Web\data\config.cache.inc.php on line 44  找到之后先把上面的改回来,然后我们从错误提示上来分析。

从中我们可以现在在网站根目录的data\config.cache.inc.php on line 44有问题,然后我就把以前正常时备份过的data\config.cache.inc.php 重新上传全覆盖后问题就解决了.到此排除了dede后台登陆一片空白的问题。

 

posted @ 2013-04-08 17:20  不再犹豫、  阅读(1511)  评论(0编辑  收藏  举报