在dede的迁移过程中发现后台登录功能不能用了,用打印字符串的方法一步一步排查,结果发现第一次错误出现在userlogin.class.php的keepUser方法的@session_register($this->keepUserIDTag);之后,于是在网上搜索@session_register作为关键字,发现这是因为php版本原因造成的,php5.4版本中session_register() 已经被弃用了。 也就是这个函数不再可用了。直接注释掉就可以了,不用进行注册就可以声明session。
在include/userlogin.class.php中查找function keepUser(),大概在281行
把keepUser()函数下的@session_register();注释掉。
function keepUser() { if($this->userID != '' && $this->userType != '') { global $admincachefile,$adminstyle; if(empty($adminstyle)) $adminstyle = 'dedecms'; [email protected]_register($this->keepUserIDTag); $_SESSION[$this->keepUserIDTag] = $this->userID; [email protected]_register($this->keepUserTypeTag); $_SESSION[$this->keepUserTypeTag] = $this->userType; [email protected]_register($this->keepUserChannelTag); $_SESSION[$this->keepUserChannelTag] = $this->userChannel; [email protected]_register($this->keepUserNameTag); $_SESSION[$this->keepUserNameTag] = $this->userName; [email protected]_register($this->keepUserPurviewTag); $_SESSION[$this->keepUserPurviewTag] = $this->userPurview; [email protected]_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 评论
很棒的博客 学习到了