DedeCMS V5.7使用session_register()在PHP5.4以上无法登录后台,页面无显示
来源:互联网 发布:c windows system32 编辑:程序博客网 时间:2024/05/01 21:29
想试试织梦的产品,下载了DedeCMS V5.7版本,在本地部署后,正确登录后台的情况下页面没有任何输出和显示(错误登录或密码错误时才有显示),也没有报错。进到脚本调试,发现问题出在登录页login.php中以下部分。
login.php
...$cuserLogin = new userLogin($admindir); if(!empty($userid) && !empty($pwd)) { $res = $cuserLogin->checkUser($userid,$pwd); //success if($res==1) { $cuserLogin->keepUser();//此处以下无输出 if(!empty($gotopage)) { ShowMsg('成功登录,正在转向管理管理主页!',$gotopage); exit(); } else { ShowMsg('成功登录,正在转向管理管理主页!',"index.php"); exit(); }echo "ok"; }...
到封装userLogin类所在的脚本userlogin.class.php中查看(路径./include/),所用的keepUser()方法代码如下:
userlogin.class.php
...function keepUser(){if($this->userID != '' && $this->userType != ''){global $admincachefile,$adminstyle;if(empty($adminstyle)) $adminstyle = 'dedecms';@session_register($this->keepUserIDTag);$_SESSION[$this->keepUserIDTag] = $this->userID;@session_register($this->keepUserTypeTag);$_SESSION[$this->keepUserTypeTag] = $this->userType;@session_register($this->keepUserChannelTag);$_SESSION[$this->keepUserChannelTag] = $this->userChannel;@session_register($this->keepUserNameTag);$_SESSION[$this->keepUserNameTag] = $this->userName;@session_register($this->keepUserPurviewTag);$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;@session_register($this->keepAdminStyleTag);$_SESSION[$this->keepAdminStyleTag] = $adminstyle;PutCookie('DedeUserID', $this->userID, 3600 * 24, '/');PutCookie('DedeLoginTime', time(), 3600 * 24, '/');$this->ReWriteAdminChannel();return 1;}else{return -1;}}
把@去掉,session_register()报出错误:
Call to undefined function session_register()
证实了问题来源于此。查手册的描述如下:
"版本:(PHP 4, PHP 5 < 5.4.0)"
"本函数已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。"
查看手册
session_register()在PHP5.4后来的版本中已经多余,可以省去而直接用$_SESSION['abc'] ="" ;
查看Stack Overflow关于此方法的问题。
解决方法:去掉或注释掉所有的session_register(),改用直接存$_SESSION数组。
keepUser()部分
...//session_register($this->keepUserIDTag);$_SESSION[$this->keepUserIDTag] = $this->userID;//session_register($this->keepUserTypeTag);$_SESSION[$this->keepUserTypeTag] = $this->userType;//session_register($this->keepUserChannelTag);$_SESSION[$this->keepUserChannelTag] = $this->userChannel;//session_register($this->keepUserNameTag);$_SESSION[$this->keepUserNameTag] = $this->userName;//session_register($this->keepUserPurviewTag);$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;//session_register($this->keepAdminStyleTag);$_SESSION[$this->keepAdminStyleTag] = $adminstyle;...
修改后就正常显示了。
我是从织梦主页上下载的"最新"版本,很奇怪难道没有人遇到同样的问题吗。这种问题既然这里能出现,别的部分就无法保证不会有更多这样的隐患存在了。
本文也发表在我的独立博客blog.mc-zone.me上,点击 访问此文
- DedeCMS V5.7使用session_register()在PHP5.4以上无法登录后台,页面无显示
- DedeCMS V5.7使用session_register()无法登录后台,页面白屏显示
- dedecms升级到V5.7后台按钮,编辑器无法显示
- php5.4 dedecms后台登录之后显示500错误解决方法
- dedecms V5.7 后台登录空白 解决方法
- 关于dedeCMS v5.7后台设置友情链接图片无法正常显示的bug修复
- DedeCMS后台,页面无显示 ,后台页面空白【转】
- php5.4环境下DedeCMS登录退出后台空白的解决办法汇总
- DedeCMS系统php5.4环境下登录退出后台空白的解决办法说明
- dedecms后台/dede/login.php登录空白,或无法登陆显示500 错误解决办法
- DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法
- DEDECMS 后台登录空白
- DedeCms后台登录空白
- asp.net 在使用母版页的子页面cs后台代码中控制母版页中的登录控件显示
- 登录请求超时,后台跳转登录页面时,是在子界面显示登录页面的问题
- dedecms V5.7笔记:文章页和内容页的分页代码判断 只显示前后几页的办法 与getjson在ie下无法刷新的简便方法
- 更换PHP 5.4以上版本后Dedecms后台登录空白的解决方法
- 更换PHP 5.4以上版本后Dedecms后台登录空白的解决方法
- 再弄一片文章凑个4篇文章的数,主要是用于XML和 Binary序列化和反序列化的类
- 正则表达式中的特殊字符
- python之小说下载器version3.0
- 计算机科学中最重要的32个算法
- Android Studio 在WIN7 下安装及使用心得
- DedeCMS V5.7使用session_register()在PHP5.4以上无法登录后台,页面无显示
- [中英文对照]android Designing for TV(三) ------ Handling Features Not Supported on TV 在TV上处理不支持的功能
- 嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一) .
- 如何做好基层管理者(二)
- Keil MDK编译器(V4.03)与J-LINK使用
- Singletons in Objective-C
- C/C++中判断某一文件或目录是否存在
- Eclipse ADT配置CVS
- 升级 Windiows 2012 引起 MDT 的两个路径错误