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{….以下省略
不能接受失败,也意味太想去成功了,从心理学上解释,