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


Posted in PHP onOctober 23, 2015

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

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

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

PHP 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
PHP中的cookie不用刷新就生效的方法
Feb 04 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
PHP自定义函数实现格式化秒的方法
Sep 14 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
PHP7新增函数
Mar 09 PHP
PHP中文竖排转换实现方法
Oct 23 #PHP
浅谈php7的重大新特性
Oct 23 #PHP
php数字每三位加逗号的功能函数
Oct 22 #PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
Oct 22 #PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 #PHP
PHP实现无限级分类(不使用递归)
Oct 22 #PHP
PHP实现递归无限级分类
Oct 22 #PHP
You might like
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
DEFER怎么用?
2006/07/01 Javascript
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
js实现时间日期校验
2020/05/26 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python 图片验证码代码
2008/12/07 Python
Python中__init__和__new__的区别详解
2014/07/09 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python使用turtle库绘制树
2018/06/25 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
python里dict变成list实例方法
2019/06/26 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
承诺书样本
2014/08/30 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
2016年教师新年寄语
2015/08/18 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
高中历史教学反思
2016/02/19 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书