原因分析:session_register,php5.4移除了这个函数,版本里说明,继续使用该函数会产生错误。if (!isset($_SESSION[$this->keepUserTypeTag]))改成这个方式就可以了。解决方法是:找到文件夹中的userlogin.class.php文件中把所有带有session_register的全部删除即可。
@session_register下的所有语句屏蔽掉function keepUser(){if($this->userID != ” && $this->userType != ”){global $admincachefile,$adminstyle;if(empty($adminstyle)) $adminstyle = ‘dedecms’;代码如下$_SESSION[$this->keepAdminStyleTag] = $adminstyle;PutCookie(‘DedeUserID’, $this->userID, 3600 * 24, ‘/’);PutCookie(‘DedeLoginTime’, time(), 3600 * 24, ‘/’);$this->ReWriteAdminChannel();return 1;}else{….以下省略
DedeCMS-V5.7后台登陆成功之后为空白页。经过反复排查得出了下面总结其实问题比较简单在降低了log级别之后 error_reporting(E_ALL);可以看到在header之前有了输出,为什么会这样呢,在php include 和require的时候 如果文件编码不一致会导致页面会输出一些空白,这就是问题所在,我用eclie把程序编码都变成UTF8(之前是UTF8 + BOM)经过转换之后我发现include/comm.inc.php 编码还是UTF8 + BOM ,于是用editplus 强制转成UTF8,问题解决。其实主要问题是出在include/comm.inc.php 文件编码上 转成UTF8即可。