在使用phpStudy 2013版升级后,许多用户可能会遇到登录本地Dedecms CMS 5.7时出现空白页面的问题。这一问题尤其常见于访问 /dede/login.php 页面时。如果您最近安装了Windows 8系统,并且调整了防火墙配置和服务设置后仍然无法解决问题,那么可以参考以下方法进行排查。

问题的根源在于phpStudy 2013版默认使用的是PHP 5.4环境,而Dedecms的login.php文件中使用了一个已被PHP 5.4废弃的函数:session_register()

为了解决这个问题,我们需要对Dedecms的核心代码进行简单的修改。以下是具体的操作步骤:


// 打开 Dedecms 目录下的 include/userlogin.class.php 文件
function keepUser()  
{  
    if($this->userID != '' && $this->userType != '')  
    {  
        global $admincachefile, $adminstyle;  
        if(empty($adminstyle)) $adminstyle = 'dedecms';  

        // 注释掉以下所有 session_register 调用
        //@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, '/');  

        $this->ReWriteAdminChannel();  

        return 1;  
    }  
    else  
    {  
        return -1;  
    }  
}
    

完成上述修改后,保存文件并刷新您的Dedecms后台登录页面,应该可以正常显示并登录。

另外一种解决方法是,在include/userlogin.class.php文件中重新定义一个空的session_register()函数,如下所示:


function session_register()  
{  
    return true;  
}
    

这种方法虽然简单,但并不推荐,因为它只是模拟了旧版PHP的行为,而没有真正解决问题。

通过以上两种方法,您可以轻松解决因PHP版本差异导致的兼容性问题。希望这些内容能够帮助您顺利完成Dedecms的配置与优化。

注意:在进行任何代码修改之前,请务必备份原始文件,以免发生意外情况。

以上就是关于如何解决Dedecms 5.7在phpStudy 2013环境下登录空白问题的详细教程,希望对您有所帮助!