上星期的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
将原系统中的三个页面复制过来覆盖,管理界面回来了。