代码改变世界

『网站升级』PHPWind8.0至8.3升级过程及问题种种回顾录

2010-12-10 10:30  我是文东  阅读(519)  评论(0编辑  收藏  举报

上星期的PHPWind杭州峰会之后,PHPWind发布了8.3版。紧接着淘连接,淘满意,团购PHPWind的一系统ARP应用开始进入我们公司技术苦力的耳朵里(也就是偶),偶知道有大事要发生了。于是乎。领导悠然降至,颁布命令,升级PHPWind,并且安装调试三大应用,摆明了丢开最土,彻底拥抱PHPWind,偶研究了一个月的东东啊,崩溃了。

 

废话不多,升级了。

 

先从网上下载

         8.0升级包:  简体 GBK 繁体 BIG5 简体 UTF8

         7.5升级包:  简体 GBK 繁体 BIG5 简体 UTF8

按照提示一步一步来。

 

第一个问题:管理员帐号无法登录升级界面

PHPWind8升级是需要使用创始人帐号的,但是我却无法登录,因为没有改过代码,所以我猜测应该是网站设计上有问题于是进入待升级后台查找原因,因为帐号失效一般可能是Cookie出问题,所以最后我在全局变量里发现了问题所在。

在全局参数中把此处设为空,把Cookie设为本地域,登录成功,升级成功。

 

第二个问题:login.php无法正常登录,无法正常登录。

因为没有改代码,所以不怀疑程序,最后发现问题果然还是出在Cookie上,在站点信息中

把站点地址设为本地(localhost),登录正常。

 

第三个问题:老用户无法正常登录。

原来用的基础程序是DZ论坛,所以用户加密方式不一样,所以以前的技术写过一个如果新密码通不过,就用老密码验证,我查看了一下代码。

$len=strlen($pwpwd);

//md5加密
$md5hex=md5($pwpwd);
$len=strlen($md5hex)/2;
$md5raw="";
for($i=0;$i<$len;$i++) { $md5raw=$md5raw . chr(hexdec(substr($md5hex,$i*2,2))); } 
$md5_pwpwd=base64_encode($md5raw);

//$md5_pwpwd = md5($pwpwd);
$safecv = $db_ifsafecv ? questcode($question, $customquest, $answer) : '';

//如果登陆失败
if($logininfo=="login_pwd_error")
{
    $md5_pwpwd = md5($pwpwd);
    $logininfo = checkpass($pwuser, $md5_pwpwd, $safecv, $lgt);
}

发现

$logininfo=="login_pwd_error"

这个验证根本没有运行,于是用

echo $logininfo;
return;

检查logininfo的值,结果发现8.3版中的错误值变成了login_usernamepwd_error,把这个替换上去,OK,老用户登录成功。

 

第四个问题:自己开发插件管理界面消失

网站有一个自己开发的管理分类信息的一个插件,首页显示正常可用,说明代码和数据库全在,但是后台管理界面消失,我猜测可能是功能就是写在系统默认管理页面里面,升级后将他覆盖了,于是能DW开始寻找页面,最后找到三个文件

    topiccate.php

    topiccate.htm

    css.htm

将原系统中的三个页面复制过来覆盖,管理界面回来了。