DEDECMS后台登录空白解决办法

今天下载了一个新版的dedecmsv5.7安装之后突然发现登录后台发现空白了,我php环境是使用的php5.4系统,经过百度php5.4把@session_register(); 去了,而且dedecmsv5.7还使用这个函数所以就出错了,下面我来分析解决办法。
解决方法:

打开 /userlogin.class.php 文件,在当前文件搜索keepUser(),然后把这个下面的@session_register();给注释掉就行了!

当然要不影响,可以改成

 代码如下
if (!isset($_SESSION[$this->keepUserTypeTag]))

修改完的函数:

 代码如下

function keepUser()
    {
        if($this->userID != '' && $this->userType != '')
        {
            global $admincachefile,$adminstyle;
            if(empty($adminstyle)) $adminstyle = 'dedecms';

   if (!isset($_SESSION[$this->keepUserIDTag]))
   //@session_register($this->keepUserIDTag);   
   $_SESSION[$this->keepUserIDTag] = $this->userID;
   if (!isset($_SESSION[$this->keepUserTypeTag]))
   //@session_register($this->keepUserTypeTag);
   $_SESSION[$this->keepUserTypeTag] = $this->userType;
   if (!isset($_SESSION[$this->keepUserChannelTag]))
   //@session_register($this->keepUserChannelTag);
   $_SESSION[$this->keepUserChannelTag] = $this->userChannel;
   if (!isset($_SESSION[$this->keepUserNameTag]))
   //@session_register($this->keepUserNameTag);
   $_SESSION[$this->keepUserNameTag] = $this->userName;
   if (!isset($_SESSION[$this->keepUserPurviewTag]))
   //@session_register($this->keepUserPurviewTag);
   $_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
   if (!isset($_SESSION[$this->keepAdminStyleTag]))
   //@session_register($this->keepAdminStyleTag);
   $_SESSION[$this->keepAdminStyleTag] = $adminstyle;
            PutCookie('DedeUserID', $this->userID, 3600 * 24, '/');
            PutCookie('DedeLoginTime', time(), 3600 * 24, '/');
           
            $this->ReWriteAdminChannel();
           
            return 1;
}
   else
{
     return -1;
}

我的问题解决了,但有些朋友并不是因为这个问题导致的。

DedeCMS 5.3/5.5/5.6等版本的UTF版本会经常遇到一个问题,就是后台登录会什么都不显示,空白一片


般这个问题都是由于使用了“记事本”而没有使用专业的文本编辑软件来编辑DedeCMS的文件造成的,一般是由于修改了以下几个文件:

include/common.inc.php
data/common.inc.php
dede/config.php

如果你使用了“记事本”之类的软件修改这些文件,修改后都会在文件中加上BOM,造成程序不能正常运行。

可以使用下面的代码来清除文件中的BOM,解决DEDECMS后台列表和登录空白的问题:

Cs_BomKill.php代码:

 代码如下

<?php

//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除
//By Bob Shen
$basedir="."; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。

//以下不用改动

if ($dh = ($basedir)) {
       while (($file = readdir($dh)) !== false) {
       if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
       }
       closedir($dh);
}

function checkBOM ($filename) {
       global $auto;
       $contents=file_get_contents($filename);
       $charset[1]=($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=($filename,"w");
        flock($filenum,LOCK_EX);
        fwrite($filenum,$data);
        fclose($filenum);
}
//结束
?>

如果上面办法还是无法解决你的问题我们可按下面方法来排查

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

 代码如下

  //error_reporting(E_ALL);

  error_reporting(E_ALL || ~E_NOTICE);

替换为:

  error_reporting(E_ALL);

  //error_reporting(E_ALL || ~E_NOTICE);

这一步很重要,因为它会告诉你为什么变成空白的提示信息,这样登录后面就会看到错误提示了。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

织梦DEDECMS 栏目文章文章命名规则修改, 每次添加栏目的时候 都要改文章命名规则,十分麻烦, 修改下面这个地方就可以一改永亦,织梦模板网为您解答 找到\include\common.inc.php 搜索 $cfg_df_namerule 把: $cfg_df_namerule = {typedir}/{Y}/{M}{D}/{aid
当我们通过{dede:arclist keyword=关键词}来调用文章列表时,你会发现只在其中一个栏目里生效,在其他栏目,仍然显示上一次的关键词。 原因是由于arclist的缓存导致的。 只需修改/include/taglib/arclist.lib.php文件,大概在384行: $taghash = md5(seriali
我们在使用织梦dedecms数据库内容替换时候,经常遇到 安全码 显示的无法识别或者不清晰,这个安全码的位置是在核心 - 批量维护 - 数据库内容替换,如果识别不了,这个页面还没有改变验证码的地方,只能重新刷新页面,如果我们不想要这个安全码的话,要怎么操
今天一个客户在安装织梦dedecms时候,安装完成后登录后台就出现Safe Alert Request Error step 2,常用dedecms的朋友都知道,这是织梦的安全机制,在程序觉得有sql注入等攻击时候,会有这种提示。 1、起初我以为是文件没传全,让这个朋友重新传了文件上去安
很多人在修改织梦会员中心模板的时候 会遇到 明明修改了,为什么还是原来样式?确认文件没有修改错误的情况下,可能是缓存问题,你 只要把 /data/tplcache/ 里面的文件全部删除,重新访问即可。
dede织梦搜索伪静态,伪静态设置成功后,访问URL地址效果如下: 搜索页 http://www.baidu.com/search/织梦.html 搜索分页 http://www.baidu.com/search/织梦-2.html 本教程也适用于手机端。 开启伪静态: 后台-系统参数-核心设置-开启伪静态 后台-系统参数-