原因分析
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, ‘/’); $this->ReWriteAdminChannel();
return 1; |
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即可。