因为我的论坛会员密码格式有大部分是16位md5加密.使用正式版的logging很多会员无法登录论坛
以下是我替换的文件地址:
使用的是这个压缩包
16位 md5 加密的论坛有: dvbbs, 94kk, bbsxp(5.0以下开始使用的), dvphp, dxbbs, joekoe, 乐学迷你bbs, teambbs, 乔客论坛, cpb
注:该文件替换的是 uc_client 文件夹中的文件。而且您的UC和DZ必须在同一台服务器才可以~
logging for 16md5.zip (3.79 KB) logging for 16md5.zip (3.79 KB)
下载次数: 965
替换后以上文件后,原来无法登录的会员统统都可以登录了.但是这个文件虽然可以使用,但是却导致了论坛会员无法上传头像的问题.替换之前使用的原版文件是可以上传头像的.我自己在本地也测试过了.只要替换logging压缩包文件,就无法上传头像..(我观察帖子,发现上面的帖子写明[ 本帖最后由 ted1006 于 2008-5-5 16:20 编辑 ]) 因为DISCUZ论坛在0606有一次更新,那么,这份替换文件也就是没有被更新过的.
我使用文件对比工具,对其进行了对比.发现了部分代码跟原版有区别,以下就是所有不同的位置,我记录下来:
第一个文件位置[\uc_client\control\user.php],所有不同的位置罗列如下(上行为替换的文件,下行为最新原版的文件,里面开头的数字为行数):- 33
- if(!$ignoreoldpw && $email && ($status = $this->_check_email($email)) < 0) {
- 33
- if(!$ignoreoldpw && $email && ($status = $this->_check_email($email, $username)) < 0) {
复制代码- 54
- } elseif($user['password'] != md5(md5($password).$user['salt']) && $user['password'] != md5(substr(md5($password),8,16).$user['salt'])) {
- 54
- } elseif($user['password'] != md5(md5($password).$user['salt'])) {
复制代码- 57(此为替换的logging文件多余的内容,原版的没有)
- if ($user['password'] == md5(substr(md5($password),8,16).$user['salt'])) {
- $this->db->query("UPDATE ".UC_DBTABLEPRE."members SET password='".md5(md5($password).$user['salt'])."' WHERE username='$username'");
- }
复制代码- 138
- function _check_email($email) {
- 135
- function _check_email($email, $username) {
复制代码- 147
- } elseif(!$this->settings['doublee'] && $_ENV['user']->check_emailexists($email)) {
- 144
- } elseif(!$this->settings['doublee'] && $_ENV['user']->check_emailexists($email, $username)) {
复制代码 结束!
第二个文件位置[\uc_client\model\user.php],所有不同的位置罗列如下(上行为替换的文件,下行为最新原版的文件,里面开头的数字为行数):- 86
- function check_emailexists($email) {
- $email = $this->db->result_first("SELECT email FROM ".UC_DBTABLEPRE."members WHERE email='$email'");
- 86
- function check_emailexists($email, $username = '') {
- $sqladd = $username !== '' ? "AND username<>'$username'" : '';
- $email = $this->db->result_first("SELECT email FROM ".UC_DBTABLEPRE."members WHERE email='$email' $sqladd");
复制代码
- 95
- } elseif($user['password'] != md5(md5($password).$user['salt']) && $user['password'] != md5(substr(md5($password),8,16).$user['salt'])) {
- 96
- } elseif($user['password'] != md5(md5($password).$user['salt'])) {
复制代码- 98(此为替换的logging文件多余的内容,原版的没有)
- if ($user['password'] == md5(substr(md5($password),8,16).$user['salt'])) {
- $this->db->query("UPDATE ".UC_DBTABLEPRE."members SET password='".md5(md5($password).$user['salt'])."' WHERE username='$username'");
- }
复制代码 完毕!
以上就是有所不同的代码对比.
请问,替换的文件哪些代码有问题.应该怎么参照原版文件修改?
比如:
替换的文件内只有($email),而DZ最新版文件却是($email, $username)
这两个有什么区别吗?替换文件是否也要改为($email, $username)
[ 本帖最后由 longaqiu 于 2008-6-22 22:04 编辑 ] |