解决更换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 相关文章推荐
php adodb操作mysql数据库
Mar 19 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
PHP MemCached 高级缓存应用代码
Aug 05 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
PHP中的事务使用实例
May 26 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
php格式化json函数示例代码
May 12 PHP
php使用文本统计访问量的方法
May 12 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
php模板函数 正则实现代码
2012/10/15 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
python对矩阵进行转置的2种处理方法
2019/07/17 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
工商技校毕业生自荐信
2013/11/15 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
语文复习计划
2015/01/19 职场文书
社区安全温馨提示语
2015/07/14 职场文书
2015中学学校工作总结
2015/07/20 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书