具体问题具体分析,我用这个方法是解决了。
织梦dedecms v5.7安装完成后登录后台出现空白,经过分析代码,发现登录验证的时候用到了这个函数session_register(),原来我的php版本是5.4版本的,经过一系列的搜寻,发现这个函数在PHP5.4版本中已经被弃用了,已经被删除了。 也就是这个函数不再可用了。直接注释掉就可以了,不用进行注册就可以声明session。 #另外可以用find配合grep查找所有的session_register函数 find . -exec grep -l session_register {} \; 在include/userlogin.class.php文件中查找function keepUser(),大概在281行 把keepUser()函数下的@session_register(...);注销掉,并用$_SESSION来替换,如下: function keepUser() { ... ... #@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; ... ... } #另外的解决方法就是在include/userlogin.class.php 中声明一个函数,但是这会导致更多其他的问题!!所以不要用这个方法! function session_register() { return true; } 除了session_register()函数被弃用,session_unregister也被弃用,在include/userlogin.class.php这个文件中还定义了另外一个函数exitUser(),它就用到了session_unregister()函数 所以也要修改这个函数,如下: function exitUser() { ClearMyAddon(); # @session_unregister($this->keepUserIDTag); $_SESSION[$this->keepUserIDTag] = $this->userID; # @session_unregister($this->keepUserTypeTag); $_SESSION[$this->keepUserTypeTag] = $this->userType; # @session_unregister($this->keepUserChannelTag); $_SESSION[$this->keepUserChannelTag] = $this->userChannel; # @session_unregister($this->keepUserNameTag); $_SESSION[$this->keepUserNameTag] = $this->userName; # @session_unregister($this->keepUserPurviewTag); $_SESSION[$this->keepUserPurviewTag] = $this->userPurview; DropCookie('dedeAdmindir'); DropCookie('DedeUserID'); DropCookie('DedeLoginTime'); $_SESSION = array(); } 这样就可以了!