织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统。然而在使用中,很多人发现好好的织梦cms在自己的本地电脑上运行的好好的,为什么搬到服务器上就显示错误呢?
这主要是一些环境以及配置方面的问题,其中织梦后台的登陆错误就是很典型的一种错误。
在这个错误的解决方法上面,主要有几点是比较重要的,一般来说织梦的环境搭载要求都是php +mysql+apache,问题首先一般是出在PHP的版本上面。
(1)更换PHP版本
如果您的织梦后台出现错误,请手动将您的主机控制面板中的PHP版本切换为5.4,这里我使用的是主机91 的cpanel控制面板。
值得注意的是,大多数的5.4版本是没有session_register功能的。所以这里就需要我们自己手动添加了。
很简单,只需要在include/userlogin.class.php中加入以下代码
functionsession_register(){
$args= func_get_args();
foreach($argsas$key){
$_SESSION[$key]=$GLOBALS[$key];
}
}
(2)修改文件夹权限
验证码无法显示和自动登出的原因是因为date文件夹和date下面的sessions文件夹的写入权限没有!
Sessions是记录(传送)登入信息的文件夹, 它无法生成文件, 自然就无法登陆而跳转回来。
解决办法如下:
修改date和date下面的sessions文件夹的权限,(可以尝试在FLASHFXP上修改,但可能会造成失败)
所以建议直接在主机的控制面板里面修改date和sessions的权限为777(writen)
(3)重装cms
这种方式您需要知道后台问题大多数是出在网站文件上的,所以您只需要重新安装一下织梦cms,然后将自己的数据库还原就可以了。
1.session问题
查看下 空间的 datasessions 文件夹是否有写入的权限,每次登录会话的参数都保存在这个文件夹下面生成的会话
文件sess_dc9d7a2f6d6125ab681dcbafff123456 每个会话文件后台都会判断你是否登录。
如果有写入权限,你登录的时候就会生成一个新的文件 ,查看文件日期。
如果没有生成新文件,说明这个文件夹是没有写入权限的,请赋写入权限。
如果有写入权限,还是登录不进去的话,清空sessions文件夹里面的文件,重新登录下,清除下浏览器的缓存。
2.直接地址栏传送账户密码(新手不建议用)
直接输入后台地址: localhost/dede/login.php?dopost=login&userid=admin&pwd=admin
传三个参数就行了,dopost=login userid =帐号,pwd=密码
空白一篇
今天开始修改一个基于dedecms的网站,我要登录它的后台管理系统,地址是domain/dede,页面显示正常,用户名和密码输入没有问题,结果显示一片空白,根本无法进入后台,于是我开始查找问题所在。
我先找到到dede下的login.php,经过我各种断点之后,发现是79行的:
$cuserLogin->keepUser();
有问题,$cuserLogin是userLogin类的对象,userLogin类的位置在dedecms的include中的userlogin.class.php,在290行左右有一句:
@session_register($this->keepUserIDTag);
我去掉了代码前面的@,程序的报错终于出来了,我到php的手册里查了下session_register这个方法,里面写着大大的Warning:
Warning
本函数已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
好了!原来如此!我的php正好是5.4,这可如何是好啊?要不我重写一个session_register方法吧!
function session_register(){
$args = func_get_args();
foreach ($args as $key){
$_SESSION[$key]=$GLOBALS[$key];
}
}
将这段代码写入userlogin.class.php中,dedecms的后台就成功登录进去了!不知道dedecms官方啥时候修改这个bug啊?
怎么样,是不是非常简单,当然这些只是一部分,关于后台无法登陆的问题还有很多,这里就不一一解释了,谢谢。