织梦安装完成后登录后台出现空白

本文介绍了解决DedeCMS v5.7在PHP 5.4环境下登录后台出现空白页的问题。通过禁用废弃的session_register()函数,并使用$_SESSION替代,同时更新了exitUser()函数中的session_unregister()调用。
具体问题具体分析,我用这个方法是解决了。
织梦dedecms v5.7安装完成后登录后台出现空白,经过分析代码,发现登录验证的时候用到了这个函数session_register(),原来我的php版本是5.4版本的,经过一系列的搜寻,发现这个函数在PHP5.4版本中已经被弃用了,已经被删除了。 也就是这个函数不再可用了。直接注释掉就可以了,不用进行注册就可以声明session。

#另外可以用find配合grep查找所有的session_register函数
find . -exec grep -l session_register {} \;

在include/userlogin.class.php文件中查找function keepUser(),大概在281行
把keepUser()函数下的@session_register(...);注销掉,并用$_SESSION来替换,如下:
function keepUser() {
...
...
            #@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;
...
...
}

#另外的解决方法就是在include/userlogin.class.php 中声明一个函数,但是这会导致更多其他的问题!!所以不要用这个方法!
function session_register() {
  return true;
}

除了session_register()函数被弃用,session_unregister也被弃用,在include/userlogin.class.php这个文件中还定义了另外一个函数exitUser(),它就用到了session_unregister()函数
所以也要修改这个函数,如下:
function exitUser() {
        ClearMyAddon();
#       @session_unregister($this->keepUserIDTag);
        $_SESSION[$this->keepUserIDTag] = $this->userID;

#       @session_unregister($this->keepUserTypeTag);
        $_SESSION[$this->keepUserTypeTag] = $this->userType;
#       @session_unregister($this->keepUserChannelTag);
        $_SESSION[$this->keepUserChannelTag] = $this->userChannel;

#       @session_unregister($this->keepUserNameTag);
        $_SESSION[$this->keepUserNameTag] = $this->userName;

#       @session_unregister($this->keepUserPurviewTag);
        $_SESSION[$this->keepUserPurviewTag] = $this->userPurview;

        DropCookie('dedeAdmindir');
        DropCookie('DedeUserID');
        DropCookie('DedeLoginTime');
        $_SESSION = array();
}

这样就可以了!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值