DedeCMS 5.7不兼容PHP 5.4版本的处置办法
发布时间:2022-05-13 14:16:16 所属栏目:经验 来源:互联网
导读:PHP 5.4相对与5.3的变化还是很大的,废除了不少原因的函数,这也导致了一些CMS无法完美支持的问题,比如DedeCMS系统。 在PHP 5.4下,登录DedeCMS后台输入用户名和密码后没有提示显示为空白,主要原为是php5.4的版本废除了session_register函数。可以采用如$_
PHP 5.4相对与5.3的变化还是很大的,废除了不少原因的函数,这也导致了一些CMS无法完美支持的问题,比如DedeCMS系统。 在PHP 5.4下,登录DedeCMS后台输入用户名和密码后没有提示显示为空白,主要原为是php5.4的版本废除了session_register函数。可以采用如$_SESSION[$this->keepUserIDTag] = $this->userID; 这种方式处理完整代码如下: 解决方法一: 打开 include/userlogin.class.php这个文件,在287行到308行原内容如下: @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, ‘/’); 替换成 global $admincachefile,$adminstyle; if(empty($adminstyle)) $adminstyle = ‘dedecms’; //@session_register($this->keepUserIDTag); $_SESSION[$this->keepUserIDTag] = $this->keepUserIDTag; $_SESSION[$this->keepUserIDTag] = $this->userID; //@session_register($this->keepUserTypeTag); $_SESSION[$this->keepUserTypeTag] = $this->keepUserTypeTag; $_SESSION[$this->keepUserTypeTag] = $this->userType; // @session_register($this->keepUserChannelTag); $_SESSION[$this->keepUserChannelTag] = $this->keepUserChannelTag; $_SESSION[$this->keepUserChannelTag] = $this->userChannel; //@session_register($this->keepUserNameTag); $_SESSION[$this->keepUserNameTag] = $this->keepUserNameTag; $_SESSION[$this->keepUserNameTag] = $this->userName; //@session_register($this->keepUserPurviewTag); $_SESSION[$this->keepUserPurviewTag] = $this->keepUserPurviewTag; $_SESSION[$this->keepUserPurviewTag] = $this->userPurview; // @session_register($this->keepAdminStyleTag); $_SESSION[$this->keepAdminStyleTag] = $this->keepAdminStyleTag; $_SESSION[$this->keepAdminStyleTag] = $adminstyle; PutCookie(‘DedeUserID’, $this->userID, 3600 * 24, ‘/’); PutCookie(‘DedeLoginTime’, time(), 3600 * 24, ‘/’); 至此问题解决。 解决方法二: 找到include文件夹中的userlogin.class.php文件中把所有带有session_register的全部删除即可。 @session_register下的所有语句屏蔽掉 function keepUser() { if($this->userID != ” && $this->userType != ”) { global $admincachefile,$adminstyle; if(empty($adminstyle)) $adminstyle = ‘dedecms’; 代码如下复制代码 $_SESSION[$this->keepAdminStyleTag] = $adminstyle; PutCookie(‘DedeUserID’, $this->userID, 3600 * 24, ‘/’); PutCookie(‘DedeLoginTime’, time(), 3600 * 24, ‘/’); $this->ReWriteAdminChannel(); return 1; } else{….以下省略。 (编辑:通化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐