最新版本的PHP 5.4.x的环境安装了dedecms v57 sp1 UTF-8,结果后台登陆提交了用户名和密码之后,居然一片空白。 仔细跟代码,才发现是两个地方导致的 因为PHP新版本的几个函数不存在了。 session_register session_unregister 文件/include/userlogin.class.p
最新版本的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(); }