宝哥软件园

解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法

编辑:宝哥软件园 来源:互联网 时间:2021-09-29

把服务器端编程语言(专业超文本预处理器的缩写)的版本从5.2.14升到了5.4.15,升级完后dedecms后台却打开空白,检查了各种权限和文件,都没有问题,找来找去,原来是服务器端编程语言(专业超文本预处理器的缩写)版本函数的问题,它是用会话寄存器来注册一个会议变量,但是在php5.4以上中已经移除了这个功能解决办法:找到包括/userlogin.class.php,里面有一个keepuser()函数,它是用会话寄存器来注册一个会议变量,但是在php5.4中已经移除了这个功能,见官网介绍:

如果使用的该服务器端编程语言(专业超文本预处理器的缩写)版本肯定会出错的,不过我们可以修改下代码:把@ session _ register($ this-keepUserIDTag);注释掉,然后改为if(!isset($ _ SESSION[$ this-keepUserIDTag])一共有六个,全部改为下面这样:

if(!isset($ _ SESSION[$ this-keepUserIDTag])/@ SESSION _ register($ this-keepUserIDTag);$ _ SESSION[$ this-keepUserIDTag]=$ this-userID;if(!isset($ _ SESSION[$ this-keepUserTypeTag])/@ SESSION _ register($ this-keepUserTypeTag);$ _ SESSION[$ this-KeepUserTypeTag]=$ this-UserType;if(!isset($ _ SESSION[$ this-keepUserChannelTag])//@ SESSION _ register($ this-keepUserChannelTag);$ _ SESSION[$ this-keepUserChannelTag]=$ this-user通道;if(!isset($ _ SESSION[$ this-keepUserNameTag])//@ SESSION _ register($ this-keepUserNameTag);$ _ SESSION[$ this-keepUserNameTag]=$ this-userName;if(!isset($ _ SESSION[$ this-keepuserview tag])/@ SESSION _ register($ this-keepuserview tag);$ _ SESSION[$ this-keepuser preview tag]=$ this-user eview;if(!isset($ _ SESSION[$ this-keepAdminStyleTag])/@ SESSION _ register($ this-keepAdminStyleTag);$ _ SESSION[$ this-keepAdminstyle标记]=$ Adminstyle;重新进入后台登录,就可以正常跳转到管理页面了。因为对服务器端编程语言(专业超文本预处理器的缩写)并不熟,网上一般都说是data/common.inc.php文件编码的问题,把编码要改为无月初(月初的缩写)格式文件保存,居然没有说是php5.4版本的问题另外一种方法:在包括/helper/util。帮手。服务器端编程语言(Professional Hypertext Preprocessor的缩写)末尾加入以下代码

function fix _ session _ register(){ function session _ register(){ $ args=func _ get _ args();foreach($ args as $ key){ $ _ SESSION[$ key]=$ GLOBALS[$ key];} } function SESSION _ is _ registered($ key){ return isset($ _ SESSION[$ key]);} function SESSION _ unregister($ key){ unset($ _ SESSION[$ key]);} } if(!function _ exists(' session _ register '))fix _ session _ register();这样php5.4下dedecms就能正常使用了,希望本文分享的两种方法都可以帮助大家顺利解决问题。

更多资讯
游戏推荐
更多+