加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

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

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!