PHPCMS2008 故障解决几例
2012-05-31 00:42:22   来源:我爱运维网   评论:0 点击:

有个企业网站,3年前就开始运行于PHPCMS2008下面,很久未有更新(大约1年半),突然有需求要变更内容.管理员面临很大的挑战:1,该网站之前更换过...
有个企业网站,3年前就开始运行于PHPCMS2008下面,很久未有更新(大约1年半),突然有需求要变更内容.管理员面临很大的挑战:1,该网站之前更换过服务器硬件;2,数据库名做过变更;3,原来负责的网络管理员及技术人员有过变动.看下来,一系列困难或故障需要解决:
1,需要登录后台,但没有后台管理密码;
登录数据库,找到网站后台的数据库,查看表phpcms_admin,存在什么管理员帐号;然后将下面内容存为crackpw.php放在网站某个目录下:
<?php
include './include/common.inc.php';
$password = ''; //填入你想设的密码
$username = ''; //真入你上面找到的管理员用户名
$password = md5(PASSWORD_KEY.$password);
$db->query("UPDATE ".DB_PRE."member SET password = '$password' WHERE username = '$username'");
$db->query("UPDATE ".DB_PRE."member_cache SET password = '$password' WHERE username = '$username'");
echo 'ok';
?>
这样就将某个管理员帐号初始化你想要的密码.为安全起见,完成后,请删除crackpw.php文件,特别是要抹去文件中的密码与用户名信息.

2,登录不再提示密码错误,而且前台也显示登录成功,但后台网页总是回到"登录窗口",观察到url中的file=login,百思不得其解.只能查看admin.php:
看到有注释行:
//session_start();
但不确定.按file=login含义先注释了下面这几行:
elseif($file != 'login')
{
        showmessage('error', '?mod=phpcms&file=login&forward='.urlencode(URL),1,1);
}
成功进了后台管理页面,不过发现"角色:"是空的.但一切均可以正常操作了,看来是绕过问题了.

后面再将上面注释打开,包括//session_start(),结果一切正常了.看样子是原来的管理员为确保后台安全,临时注释了session_start();防止异常登录尝试.

3,修改所需内容,重新发布页面.发现页面上所有的标签不再出现内容,直接呈现{tag_一级栏目}变量名.这下搞大了,不仅原来的内容都没有了,而且似乎不能回退.查看模板,发现都是正确的.判定问题可能出在模板调用数据库不正确,无法将内容填入.网上搜索很久,没有类似情况.联想到更换了数据库,可能读不到数据库.网络上终于搜索到一篇:

phpcms2008更换模板出现无法更新问题

的文章.提到phpcms2008在更换了模板以后,更新页面时候出现无法更新,数据库报错的问题.果然如此.
文中提到"这是因为标签的问题. phcpms2008的标签配置文件保存在模板文件夹里,路径是templates/你的模板风格文件夹/tag.inc.php和 templates/你的模板风格文件夹/phpcms/tag_config.inc.php
大家可以打开看看里面的内容." 如:

'sql' => 'select * from `phpcms_content` a,`phpcms_content_tag` k where a.contentid=k.contentid and a.status=99 and k.tag=\'$tag\' order by a.contentid desc',

这是由于更换数据库引起的,标签配置文件硬要读取旧数据库的表前缀,而这个表前缀在新系统里又不存在,于是问题产生了…….
解决方法有两个:
其一,在模板可视化下打开标签,不用修改任何东西直接保存一下就可以了,就是说,只要在你系统里打开标签另存一下就好了.系统自动修改了表前缀为你系统的;【简单但费时费力】
其二,批量替换, templates/你的模板风格文件夹/tag.inc.php 和 templates/你的模板风格文夹/phpcms/tag_config.inc.php等等,不局限于这两个,其他模块的以此类推.把里面的 phpcms_替换成新系统的表前缀.比如原系统是 phpcms_, 新系统的是pc08_,那么就用dw或者其他什么工具批量替换这个templates文件夹就可以了.
由于改到很少,这里就直接使用方法一解决了.

终于圆满完成了任务,虽然有些曲折.
 

相关热词搜索:PHPCMS2008 故障

上一篇:PHPCMS(V9) 文章内容导致页面错位的解决办法
下一篇:PHPCMS V9文章分页设置不同标题的两种方法

分享到: 收藏
iTechClub广告