网上很多方法,其实大部分都是这样解决的哦,也可以把上的php版本降为5.3或者5.2的就可以了 原因很简单,服务器php环境用的php5.4,而的login.php中使用了一个被php5.4抛弃不用的函数(是不是真的抛弃我不知道,反正原文这么写的) session_register() 意思就是这说个函数不能用了,想用也用不了。方法很简单,直接注释掉,不用进行注册就可以声明session。 在dedecms目录include/userlogin.class.php中查找 function keepUser() 大概在281行,把keepUser()函数下的 @session_register(); 整段注释掉(删除也可以),结果如下: function keepUser() { if($this->userID != '' && $this->userType != '') { global $admincachefile,$adminstyle; if(emptyempty($adminstyle)) $adminstyle = 'dedecms'; //@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; Put('DedeUserID', $this->userID, 3600 * 24, '/'); PutCookie('DedeLoginTime', time(), 3600 * 24, '/'); $this->ReWriteAdminChannel(); return 1; } else { return -1; } } 另外的解决方法就是在include/userlogin.class.php 中声明一个函数 function session_register() { return true; } (责任编辑:迷城网络科技) |