15赞
583
当前位置:  开发笔记 > 编程语言 > 正文

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

为什么会出现更换PHP5.4以上版本后Dedecms后台登录空白的情况,本文将给大家详细分析,找出真正原因以及解决办法。

把PHP的版本从5.2.14升到了5.4.15,升级完后dedecms后台却打开空白,检查了各种权限和文件,都没有问题,找来找去,原来是PHP版本函数的问题,它是用session_register来注册一个session变量,但是在php5.4以上中已经移除了这个功能
解决办法:
找到include/userlogin.class.php,里面有一个keepuser()函数,它是用session_register来注册一个session变量,但是在php5.4中已经移除了这个功能,见官网介绍:

如果使用的该php版本肯定会出错的,不过我们可以修改下代码:
把@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->userChannel; 
 
if (!isset($_SESSION[$this->keepUserNameTag])) 
//@session_register($this->keepUserNameTag); 
 
$_SESSION[$this->keepUserNameTag] = $this->userName; 
 
if (!isset($_SESSION[$this->keepUserPurviewTag])) 
//@session_register($this->keepUserPurviewTag); 
 
$_SESSION[$this->keepUserPurviewTag] = $this->userPurview; 
 
if (!isset($_SESSION[$this->keepAdminStyleTag])) 
//@session_register($this->keepAdminStyleTag); 
 
$_SESSION[$this->keepAdminStyleTag] = $adminstyle; 

重新进入后台登录,就可以正常跳转到管理页面了。
因为对PHP并不熟,网上一般都说是data/common.inc.php文件编码的问题,把编码要改为无BOM格式文件保存,居然没有说是php5.4版本的问题
另外一种方法:
在include/helpers/util.helper.php末尾加入以下代码

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就能正常使用了,希望本文分享的两种方法都可以帮助大家顺利解决问题。

推荐阅读
  • wordpress可以做商城网站,虽然Wordpress是属于博客系统的一个平台,但是因为Wordpress有很多第三方插件可以免费使用,所以也能做商城网站。 ... [详细]
  • 创建自己网页的步骤:1、注册域名;2、购买服务器;3、网站备案;4、服务器环境安装;5、安装博客系统;6、域名解析。 ... [详细]
  • 下面由WordPress教程栏目给大家介绍一些WordPress插件模板,希望对需要的朋友有所帮助!丰富的插件和模板是WordPress非常流行的一个特性。WordPress插件数据库中有超过18000个插件,包括SEO、控件等等。 ... [详细]
  • 用wordpress快速建站的方法:首先到官网下载wordpress程序;然后使用FTP将wordpress上传到网站根目录;接着在浏览器上输入“http:你的域名wp-admin”进行安装;最后填写关于站点的信息并登录管理后台即可。 ... [详细]
  • WordPress的.htaccess优化技巧是:1、请求是image、css、js这样的静态文件就不进行重定向;2、url指向了存在的目录就跳过重写直接到wp。 ... [详细]
  • 将WordPress博客订阅到QQ邮箱的方法:1、登录QQ邮箱,点击“阅读空间”;2、点击设置-定制我的订阅图标;3、选择图标并输入博客Feed地址,点击生成图标代码;4、将图标代码放入博客中即可。 ... [详细]
  • WordPress文章底部去除与添加版权信息的方法:首先进入管理后台,打开外观-编辑;然后点击footer.php编辑页脚文件,删除或添加需要的版权信息代码;最后点击“更新文件”进行刷新即可。 ... [详细]
  • Wordpress自动提取内容中第一张图片作缩略图的方法:首先打开“function.php”文件;然后添加函数为“functioncatch_that_image”;接着在wordpress需要调用缩略图的地方直接用该函数调用即可。 ... [详细]
  • 让WordPress媒体库识别“.pdf”文件的方法:首先打开“functions.php”文件;然后添加代码为“functionmodify_post_mime_types(){}”;接着在媒体库中上传一个pdf文件即可。 ... [详细]
  • ​有时我们想限制WordPress部分用户角色访问后台,可以通过下面的代码实现。一、只允许管理员、编辑和作者角色访问后台;二、禁止默认注册用户角色进入后台。 ... [详细]
devbox
陈陈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4