解决更换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作的文本留言本的例子(二)
Oct 09 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
php 计划任务 检测用户连接状态
Mar 29 PHP
ThinkPHP关于session的操作方法汇总
Jul 18 PHP
PHP连接access数据库
Mar 27 PHP
PHP中实现Bloom Filter算法
Mar 30 PHP
twig里使用js变量的方法
Feb 05 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 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 存储文本换行实现方法
2010/01/05 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python try 异常处理(史上最全)
2019/03/07 Python
python字典一键多值实例代码分享
2019/06/14 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
新学期班主任寄语
2014/01/18 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
作风整顿剖析材料
2014/09/30 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android