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

(0)

相关推荐

  • dedecms中使用php语句指南

    在DEDECMS中,使用php语句的话,本身是有{dede:php}标签可以使用的,最简单的输入如 复制代码 代码如下: {dede:php} $numA = 1; $numB = 2; echo $numA + $numB; {/dede:php} 从上面语句可以看出dede:php标签可以名符其实的让在php中一样的用法,上面语句在php写法如下 复制代码 代码如下: <? $numA=1; $numB=2; echo $numA+$numB; ?> 是不是看上去很像啊,再看一个再有if

  • PHPCMS2008广告模板SQL注入漏洞修复

    00 漏洞描述 PHPCMS2008由于广告模块取referer不严,导致一处sql注入漏洞.可以得到管理员用户名与密码,攻击者登录后台后可能会获取webshell,对服务器进行进一步的渗透. 01 漏洞分析 漏洞产生的位置: /ads/include/ads_place.class.php的show方法中. function show($placeid) ... if($adses[0]['option']) { foreach($adses as $ads) { $contents[] =

  • 使用PHPCMS搭建wap手机网站

    下面给大家讲使用PHPCMS搭建wap手机网站的方法,具体内容请看下文. 首先在phpcms/libs/functions/extention.func.php里面写入判断手机访问的自定义函数 <?php /** * extention.func.php 用户自定义函数库 * * @copyright (C) 2005-2010 PHPCMS * @license * @lastmodify 2010-10-27 */ //判断是否手机访问 function check_wap() { if (

  • 仿dedecms下拉分页样式修改的thinkphp分页类实例

    本文实例讲述了仿dede下拉分页样式修改的thinkphp分页类.分享给大家供大家参考.具体实现方法如下: 修改thinkphp分页类:如下拉列表式分页(类似dedecms分页): 纯html代码: 复制代码 代码如下: <select name="sldd" style="width:36px" onchange="location.href=this.options[this.selectedIndex].value;"> <

  • 如何给phpcms v9增加类似于phpcms 2008中的关键词表

    最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keyword表中,这一点不是很喜欢v9;站内搜索功能,我觉得一般会用得比较少,而我们在增加文章的时候实际上就把关键词分隔开了,为什么还要多此一举了,其实改起来也比较简单 在model文件夹中增加一个keyword_ext_model.class.php.keyword_model实际是存在model文件夹

  • 几款免费开源的不用数据库的php的cms

    1.MuCMS一个小型,平台独立的内容管理系统适用于非交互式网站(网站只发布信息).它对系统要求非常低,只需要Apache+PHP.没有使用数据库.它具有安全,快速,易用等特点.官方网站http://mucms.taggedzi.com/index.php 2.Synergiser是一个采用模块化设计,不需要依赖数据库的内容管理系统(CMS).它还包含一个简单的blog系统,一个简单的Menu,一个 RSS聚合器,一个用于处理静态页面的内容管理面板和一个模板系统.官方网站http://www.f

  • php笔记之:初探PHPcms模块开发介绍

    由于工作关系,只能暂时放弃对mongodb的研究了 .开始研究PHPcms . 目前为止我已经基本完成了模块的开发.趁着周末来这里做个总结.我发现phpcms写的还不错,不过文档什么的确实不多. 不说废话了.对于phpcms的模块开发.首先要了解模块的目录结构. 我们可以在http://v9.help.phpcms.cn/html/2010/structure_0928/69.html 找到他的目录结构   我们要开发的东东(也就是模块)就在/phpcms/modules/下面 如果没有什么特别

  • phpcms模块开发之swfupload的使用介绍

    正式接触phpcms模块开发后.开发了几个功能模块.其中遇到了需要批量上传图片的问题.于是开始挖掘phpcms里面的swfupload的用法. 在phpcms里面自带的内容类型里面能够直接指定图片组.不过这样的图片组功能并不是我想用的.我需要上传一整个静态的html文件.需要 能够找到一个方法上传整个文件夹.并且能够保留原来的文件名称. 目的总结如下: 1,不改变系统的文件和目录结构. 2,实现多附件上传功能. 3,能够得到上传后的文件夹名称. 在phpcms中自带了附件上传的功能.我想去用sw

  • 解决更换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中已经移除了这个功能,见官网介绍:

  • php5.4以下版本json不支持不转义内容中文的解决方法

    本文实例讲述了php5.4以下版本json不支持不转义内容中文的解决方法.分享给大家供大家参考.具体分析如下: 写ERP接口的时候遇到JAVA方接收这种json_encode后的内容 复制代码 代码如下: {"orderCode":"1401160935542399","creator":"\u751f\u6d3b\u7528\u54c1\u6d4b\u8bd5\u5c0f\u5c4b"} 其中"creator&qu

  • 修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

    之前把现有这台阿里CentOS7.2系统的Python2.7.5升级成Python3.6后,yum工具就不能不觉使用了.当时查了下说明python版本的问题,但是用网上的方法还是没解决,后面也就一直没管了.最近要弄一个Nodejs小程序,需要用yum安装一些开发工具,不得不修复这个问题. 1 yum工具报错情况 直接执行 yum 命令就会提示 /usr/bin/yum 文件第34行有错误: [root@typecodes ~]# yum File "/usr/bin/yum", lin

  • springboot 高版本后继续使用log4j的完美解决方法

    springboot  高版本后不支持log4j了,很多人还是喜欢log4j风格的日志,我们自己来加载log4j,其实很容易. 第一步:我们手动加入我们想要的log4j jar,在项目里面随便建一个文件夹,将用到的jar丢进去,右键 add to build path 第二步: 在main函数启动类所在的包或者其子包下写一个这样的类,用来加载log4j配置文件,是的,什么内容都没有. import org.springframework.boot.context.properties.Confi

  • 安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法

    安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: "所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 "的解决方法; 作者这里可能仅仅只是针对某些情况,希望对你有所帮助! 安装pyecharts: 对于学习大数据可视化萌新来说我们一般都会使用 pip install pyecharts 命令来安装pyecharts包,因为这个pip命令是最简单快捷的方式,但是使用这个命令一般来说默认安装的是最新版本的包. 当我们安装完成后

  • 解决mysql8.0.19  winx64版本的安装问题

    MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 这篇文章重点给大家介绍解决mysql8.0.19  winx64版本的安装问题,具体内容如下所示: 下载地址:https://dev.mysql.com/downloads/mysql/,我下载了上面的187.8M的

  • 更新升级python和pip版本后不生效的问题解决

    写在前面 最近在更新我服务器上的python以及pip版本的时候,碰见了令人头痛的问题,就是我执行了升级指令之后,升级也正常的Successfully Complete!了,但是我用python -V或者pip -V查看版本的时候,发现还是原来的版本,没有变化,解决了半天才发现问题所在,这里就记录一下,能帮助有需要的人. 升级python版本 我的服务器系统用的是CentOS7.7版本,后面我还会说一种CentOS6的修改方法.首先,我们使用如下指令进行升级python版本. yum insta

  • 解决MySQL 5.7.9版本sql_mode=only_full_group_by问题

    MySQL 5.7.9版本sql_mode=only_full_group_by问题 用到GROUP BY 语句查询时com.MySQL.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not func

  • 解决Vue在封装了Axios后手动刷新页面拦截器无效的问题

    项目类型:vue+vux+axios 刚开始,把Axios封装在了http.js文件里面,然后为了使用VUX的提示框消息,把拦截器直接写在了main.js里面.直接调用接口,一切正常. 然而因为返回值有统一的code错误代码提示,所以在拦截器里面加入了code的判断以便统一返回值.刚开始一切都是按照预期的结果来走的.就在一个夜黑风高的晚上,我头晕眼花的按F5手动刷新了一下页面,惊奇的发现拦截器失效了,并没有拦截外面的Coode Json代码层,而是直接把服务器的全部json数据劈头盖脸的砸在了我

  • 解决vue项目使用font-awesome,build后路径的问题

    问题: 项目在本地run情况下显示正常,在build后font-awesome的css文件依赖的几个图标文件引用路径报错. 在webpack.base.conf.js中关于几个文件的配置如下: { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: utils.assetsPath('fonts/[name].[hash:7].[ext]') } } 解决: 通过

随机推荐