Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[转换] DV8.2转换到DZ7后,替换uc_client仍无法登陆

[复制链接]
fengbingji 发表于 2009-1-15 17:08:43 | 显示全部楼层 |阅读模式
我的站是:http://fsjie.com.cn
刚刚从DV8.2(ACC)转到DZ7
是用XConvert_for_dvbbs转的.
转换过程中一切顺利,也把uc_client替换了,更新了缓存.但是老用户也是登陆不了.
后来重装了还几次,转了好几次结果还是一样.真不知道是什么问题.

结果就看看数据库里面的用户密码字段.动网的明明是16位的,怎么老用户的密码全都变成了32位了?
更奇怪的是这32位的密码并不是原来的16位转过来的.
举个例子:原来动网的密码是"f304cd853aa6e483",用过<XConvert_for_dvbbs>转过来之后就变成了"7353ef5ad2a99a9f8a5a46282bece591",百思不得其解.

更郁闷的是,我试图重新注册一个新账号,看看密码是否标准的32位MD5,结果出现了这样的情况.
如图:

希望各位高手能够帮帮忙.
我的QQ是:55989366.
桃子(小敏) 发表于 2009-1-15 17:14:40 | 显示全部楼层
登录ucenter后台,用户管理,看下所有用户都转过来了吗
回复

使用道具 举报

 楼主| fengbingji 发表于 2009-1-15 17:19:15 | 显示全部楼层
是的,所有的用户都转过来了.
回复

使用道具 举报

xiori 发表于 2009-1-15 18:03:54 | 显示全部楼层
本帖最后由 xiori 于 2009-1-15 18:20 编辑

应该是转换的过程有问题还有就是user.php文件也有问题吧?
我检查了一下所替换的文件,
里面检查登录的语句
  1. elseif($user['password'] != md5($passwordmd5.$user['salt']) && $user['password'] != md5(substr(md5($password),8,16).$user['salt'])
复制代码
得出的结果完全跟原来的16位md5不对应..
substr(md5($password),8,16)是截取第8位开始的16位字符,然后再加上随机字符得出的密码,
不是应该substr(md5($password),0,16)吗??

现在我还在研究着转换程序..,但不知道验证的文件是不是就只有user.php这个......
回复

使用道具 举报

xiori 发表于 2009-1-15 18:16:37 | 显示全部楼层
本帖最后由 xiori 于 2009-1-15 18:19 编辑

俺改成这样就可以正常登录了
  1. if(empty($user)) {
  2.                         $status = -1;
  3.                 } elseif($user['password'] != md5($passwordmd5.$user['salt']) && $user['password'] != substr(md5($password),0,16)){     //change
  4.                         $status = -2;
  5.                 } elseif($checkques && $user['secques'] != '' && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {
  6.                         $status = -3;
  7.                 } else {
  8.                         if($user['password'] == substr(md5($password),0,16)){                                                                                                                                //change
  9.                                 $this->db->query("UPDATE".UC_DBTABLEPRE."members SET password='".md5(md5($password).$user['salt'])."' WHERE username='$username'");  
  10.                         }

  11.                         $status = $user['uid'];
复制代码
回复

使用道具 举报

steven711 发表于 2009-1-15 18:42:34 | 显示全部楼层
我也是遇到这个问题,都不知道怎么办,好头痛啊,版主请出来帮帮忙!
回复

使用道具 举报

 楼主| fengbingji 发表于 2009-1-15 19:08:07 | 显示全部楼层
应该是转换的过程有问题还有就是user.php文件也有问题吧?
我检查了一下所替换的文件,
里面检查登录的语句elseif($user['password'] != md5($passwordmd5.$user['salt']) && $user['password'] != md5(substr(md5($ ...
xiori 发表于 2009-1-15 18:03

从第八位开始取后面16位,这个这个没有错.
回复

使用道具 举报

ianseb 发表于 2009-1-15 19:23:38 | 显示全部楼层
回复

使用道具 举报

蓝豆 发表于 2009-1-15 20:41:20 | 显示全部楼层
楼上的请不要灌水
回复

使用道具 举报

 楼主| fengbingji 发表于 2009-1-16 09:28:23 | 显示全部楼层
已经解决了,谢谢各位的帮忙!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-10-3 23:34 , Processed in 0.149451 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表