DedeCMS 5.7不兼容PHP 5.4版本的解决办法

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{….以下省略

不能接受失败,也意味太想去成功了,从心理学上解释,

DedeCMS 5.7不兼容PHP 5.4版本的解决办法

相关文章:

你感兴趣的文章:

标签云: