php5.4织梦后台登录出现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;
支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论