当前位置:首页 > 代码学习 > DEDECMS后台登录空白

DEDECMS后台登录空白

作者:星之宇 ┊ 时间:2013-6-27 22:24 ┊ 分类: 代码学习 ┊ 阅读:19159 ┊ 评论:1

今天碰到安装好DedeCMS V5.7 SP1正式版,后台登陆空白无反应。

查找了原因是include/userlogin.class.php 这个文件,发现keepUser函数(保持用户的会话状态函数)下会出现@session_register();

但是这个函数在php5.4的时候已经被弃用了,所以在各别用户的环境下会出现undefine错误,但是被@符抑制了报错,所以才会出现空白。

session_register:php5.4移除了这个函数,版本里说明,继续使用该函数会产生错误。

PS:dedecms使用了php5.4的弃用的一些函数,所以会动不动出问题,建议还是使用php5.3版本。


解决方法:

第一种:降低php的版本(php5.3)就可以了。

第二种:修改程序,比较麻烦。

打开 include/userlogin.class.php 文件,在当前文件搜索keepUser(),然后把这个下面的@session_register();给注释掉就行了!

当然要不影响,可以改成if (!isset($_SESSION[$this->keepUserTypeTag]))

修改完的函数:

    function keepUser()
    {
        if($this->userID != '' && $this->userType != '')
        {
            global $admincachefile,$adminstyle;
            if(empty($adminstyle)) $adminstyle = 'dedecms';

			if (!isset($_SESSION[$this->keepUserIDTag]))
			//@session_register($this->keepUserIDTag);    
			$_SESSION[$this->keepUserIDTag] = $this->userID;
			if (!isset($_SESSION[$this->keepUserTypeTag]))
			//@session_register($this->keepUserTypeTag);
			$_SESSION[$this->keepUserTypeTag] = $this->userType;
			if (!isset($_SESSION[$this->keepUserChannelTag]))
			//@session_register($this->keepUserChannelTag);
			$_SESSION[$this->keepUserChannelTag] = $this->userChannel;
			if (!isset($_SESSION[$this->keepUserNameTag]))
			//@session_register($this->keepUserNameTag);
			$_SESSION[$this->keepUserNameTag] = $this->userName;
			if (!isset($_SESSION[$this->keepUserPurviewTag]))
			//@session_register($this->keepUserPurviewTag);
			$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
			if (!isset($_SESSION[$this->keepAdminStyleTag]))
			//@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;
        }
目前有 1 条评论
avatar
无名智者 2013-07-27 21:38回复1楼
我的vps装的是php 5.5.0 ,看来不能用dedecms了