DedeCMS 5.7不兼容PHP 5.4版本的解決辦法

2013-05-28 09:16:47來源:西部e網(wǎng)作者:

PHP 5.4相對與5.3的變化還是很大的,廢除了不少原因的函數(shù),這也導(dǎo)致了一些CMS無法完美支持的問題,比如DedeCMS系統(tǒng)。

PHP 5.4相對與5.3的變化還是很大的,廢除了不少原因的函數(shù),這也導(dǎo)致了一些CMS無法完美支持的問題,比如DedeCMS系統(tǒng)。

在PHP 5.4下,登錄DedeCMS后臺輸入用戶名和密碼后沒有提示顯示為空白,主要原為是php5.4的版本廢除了session_register函數(shù)。可以采用如$_SESSION[$this->keepUserIDTag] = $this->userID; 這種方式處理完整代碼如下:

解決方法一:

打開 include/userlogin.class.php這個文件,在287行到308行原內(nèi)容如下:

@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’;
 代碼如下 復(fù)制代碼
$_SESSION[$this->keepAdminStyleTag] = $adminstyle;
PutCookie(‘DedeUserID’, $this->userID, 3600 * 24, ‘/’);
PutCookie(‘DedeLoginTime’, time(), 3600 * 24, ‘/’);
$this->ReWriteAdminChannel();
return 1;
}
else{….以下省略

關(guān)鍵詞:DedeCMSPHP

贊助商鏈接: