现在的位置: 首页 > 综合 > 正文

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

2014年01月25日 ⁄ 综合 ⁄ 共 1864字 ⁄ 字号 评论关闭
具体问题具体分析,我用这个方法是解决了。
织梦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();
}

这样就可以了!

抱歉!评论已关闭.