今天在家中电脑上安装了DEDE5.7后,发现后台登录时页面竟然一片空白,而安装PHPCMS却没有出现类似问题。经过一番查找资料和尝试,终于找到了解决方案。
查看源码后发现,DEDE5.7的类库中存在大量PHP4的语法结构,例如使用“var”关键字定义成员变量。然而,在PHP5中,“var”已经被废弃,尽管仍能运行但会引发警告或错误。我的环境配置为:win7 + PHP/5.4.7 + Apache/2.2.22 + mysql5.7.27。
由于官方尚未更新相关代码,因此需要手动解决这一问题。主要原因是部分类文件中的语句未对版本兼容性进行判断,导致PHP5.4中不再支持的语句出现了提示信息,从而造成白屏现象。
以下是具体的解决方法:
打开include文件夹下的userlogin.class.php文件,找到所有与@session_register相关的语句,并将其屏蔽掉,同时替换为新的$_SESSION赋值方式。
/* @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;
完成上述修改后,保存文件并重新尝试登录后台,此时应该可以正常访问。
通过以上操作,我们成功解决了DEDE5.7在高版本PHP环境下后台登录白屏的问题。此问题的核心在于PHP语言的发展导致旧版代码无法适应新环境,因此对于开发者来说,了解不同版本间的差异是非常重要的。