dede后台登录出现空白页的解决方法

在dede的迁移过程中发现后台登录功能不能用了,用打印字符串的方法一步一步排查,结果发现第一次错误出现在userlogin.class.php的keepUser方法的@session_register($this->keepUserIDTag);之后,于是在网上搜索@session_register作为关键字,发现这是因为php版本原因造成的,php5.4版本中session_register() 已经被弃用了。 也就是这个函数不再可用了。直接注释掉就可以了,不用进行注册就可以声明session。

在include/userlogin.class.php中查找function keepUser(),大概在281行
把keepUser()函数下的@session_register();注释掉。

function keepUser()
 {
     if($this->userID != '' && $this->userType != '')
     {
         global $admincachefile,$adminstyle;
         if(empty($adminstyle)) $adminstyle = 'dedecms';
         //@session_register($this->keepUserIDTag);
         $_SESSION\[$this->keepUserIDTag\] = $this->userID;
         //@session_register($this->keepUserTypeTag);
         $_SESSION\[$this->keepUserTypeTag\] = $this->userType;
         //@session_register($this->keepUserChannelTag);
         $_SESSION\[$this->keepUserChannelTag\] = $this->userChannel;
         //@session_register($this->keepUserNameTag);
         $_SESSION\[$this->keepUserNameTag\] = $this->userName;
        //@session_register($this->keepUserPurviewTag);
         $_SESSION\[$this->keepUserPurviewTag\] = $this->userPurview;
         //@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;