演示链接:查看演示

dedecmsdedecms登录后台出现500错误

dedecmsCMSdedecms登录后台出现500错误大部分都是这样解决的哦,也可以把服务器上的php版本降为5.3或者5.2的就可以了

原因很简单,服务器php环境用的php5.4,而dedecms的login.php中使用了一个被php5.4抛弃不用的函数(是不是真的抛弃我不知道,反正原文这么写的) 

session_register() 

意思就是这说个函数不能用了,想用也用不了。方法很简单,直接注释掉,不用进行注册就可以声明session。 

在dedecms目录include/userlogin.class.php中查找 

function keepUser() 

大概在281行,把keepUser()函数下的 @session_register(); 整段注释掉(删除也可以),结果如下: 

function keepUser()   

{   

    if($this->userID != '' && $this->userType != '')   

    {   

        global $admincachefile,$adminstyle;   

        if(emptyempty($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;   

    }   

}  

另外的解决方法就是在include/userlogin.class.php 中声明一个函数 

function session_register() 
{
return true;
}  

THE END
喜欢就支持一下吧
点赞0 分享