最新版本的PHP 5.4.x的环境安装了dedecms v57 sp1 UTF-8,结果后台登陆提交了用户名和密码之后,居然一片空白。
仔细跟代码,才发现是两个地方导致的 因为PHP新版本的几个函数不存在了。
session_register
session_unregister
文件/include/userlogin.class.php
/**
* 保持用户的会话状态
*
* @access public
* @return int 成功返回 1 ,失败返回 -1
*/
function keepUser()
{
if($this->userID != '' && $this->userType != '')
{
global $admincachefile,$adminstyle;
if(empty($adminstyle)) $adminstyle = 'dedecms';
if(function_exists("session_register")) $session_register = true;
if($session_register) @session_register($this->keepUserIDTag);
$_SESSION[$this->keepUserIDTag] = $this->userID;
if($session_register) @session_register($this->keepUserTypeTag);
$_SESSION[$this->keepUserTypeTag] = $this->userType;
if($session_register) @session_register($this->keepUserChannelTag);
$_SESSION[$this->keepUserChannelTag] = $this->userChannel;
if($session_register) @session_register($this->keepUserNameTag);
$_SESSION[$this->keepUserNameTag] = $this->userName;
if($session_register) @session_register($this->keepUserPurviewTag);
$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
if($session_register) @session_register($this->keepAdminStyleTag);
$_SESSION[$this->keepAdminStyleTag] = $adminstyle;
PutCookie('DedeUserID', $this->userID, 3600 * 24, '/');
PutCookie('DedeLoginTime', time(), 3600 * 24, '/');
$this->ReWriteAdminChannel();
return 1;
}
else
{
return -1;
}
}
//
/**
* 结束用户的会话状态
*
* @access public
* @return void
*/
function exitUser()
{
ClearMyAddon();
if(function_exists("session_unregister"))
{
@session_unregister($this->keepUserIDTag);
@session_unregister($this->keepUserTypeTag);
@session_unregister($this->keepUserChannelTag);
@session_unregister($this->keepUserNameTag);
@session_unregister($this->keepUserPurviewTag);
}
DropCookie('dedeAdmindir');
DropCookie('DedeUserID');
DropCookie('DedeLoginTime');
$_SESSION = array();
}