返回   CHF站长论坛 > 特色讨论区 > vBulletin 交流专栏

vBulletin 交流专栏 vBulletin 是一个强大,灵活并可完全根据自己的需要定制的论坛程序。[官方]

双至强仅二千,企商在线,最早租用商 魔兽世界私服 魔兽世界私服 亿恩1元帮您升级服务器! 天龙八部私服 完美世界私服 新开传奇私服
传奇私服 热血江湖私服 仙境私服 天龙八部私服 魔域私服 魔域私服 新开传奇私服 魔域私服 传奇私服
发表新主题 回复
 
主题工具 主题评分 显示模式
旧 2005-11-22, 08:32   #1 (页面定位)
扬子
 
扬子 的头像
 
注册日期: 2005-09-05
帖子: 909
扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人
默认 野兽再来问你2个问题

一、转换完毕后,请先到 vB 后台更新计数器!
然后用当前目录下的 functions_login.php 覆盖 vB 目录/includes/functions_login.php。
如果版本不统一或者已作修改,请按照以下步骤编辑 vB 目录/includes/functions_login.php:
找到
-------------------------------------------------------------------------------------
if (
$bbuserinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $bbuserinfo['salt']), '') AND
$bbuserinfo['password'] != md5($md5password . $bbuserinfo['salt']) AND
$bbuserinfo['password'] != iif($md5password_utf, md5($md5password_utf . $bbuserinfo['salt']), '')
)
{
return false;
}
-------------------------------------------------------------------------------------
修改为:
-------------------------------------------------------------------------------------
// 检验是否为动网转换过来的用户。
if (strlen($bbuserinfo['password']) == 16)
{
// 检验 16 位的 MD5 是否匹配。
if (
$bbuserinfo['password'] != iif($password AND !$md5password, substr(md5($password), 8, 16), '') AND
$bbuserinfo['password'] != substr($md5password, 8, 16) AND
$bbuserinfo['password'] != iif($md5password_utf, substr($md5password_utf, 8, 16), '')
)
{
return false;
}

// 获取新密码。
include('./includes/functions_user.php');
$userSalt = fetch_user_salt(3);
if (!empty($password) AND !isset($md5password))
{
$newPassword = md5(md5($password) . $userSalt);
}
else if (!empty($md5password))
{
$newPassword = md5($md5password . $userSalt);
}
else
{
$newPassword = md5($md5password_utf . $userSalt);
}

// 更新该用户的密码。
$DB_site->query('
UPDATE ' . TABLE_PREFIX . 'user
SET
password = "' . addslashes($newPassword) . '",
salt = "' . addslashes($userSalt) . '"
WHERE userid = ' . $bbuserinfo['userid']
);
}
else
{
if (
$bbuserinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $bbuserinfo['salt']), '') AND
$bbuserinfo['password'] != md5($md5password . $bbuserinfo['salt']) AND
$bbuserinfo['password'] != iif($md5password_utf, md5($md5password_utf . $bbuserinfo['salt']), '')
)
{
return false;
}
}
-------------------------------------------------------------------------------------
这个是DVBBS7.0转换到Version 3.0.7 后的“检验是否为动网转换过来的用户”代码,请问我又从Version 3.0.7后升级到vBulletin 3.5.1版本,这样上面的代码就不能用了,请问如何更改includes/functions_login.php?? 上面代码在Version 3.0.7 里我试过了,好用的,可是升级后不知道如何更改了。
扬子 当前离线   回复时引用此帖
旧 2005-11-22, 08:34   #2 (页面定位)
扬子
 
扬子 的头像
 
注册日期: 2005-09-05
帖子: 909
扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人
默认

第二个问题,VBB是否可以实现这样的功能,因为我的论坛有很多版块,以后会更多,主要是把学校里的5大系,100多个班级全部纳入进来了,所以……
功能详见落伍的:http://www.im286.com/forumdisplay.php?fid=52
扬子 当前离线   回复时引用此帖
旧 2005-11-22, 09:35   #3 (页面定位)
yeshou
 
yeshou 的头像
 
注册日期: 2005-09-06
帖子: 7033
yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀
默认

这个修改模板就可以实现

引用:
作者: 扬子
第二个问题,VBB是否可以实现这样的功能,因为我的论坛有很多版块,以后会更多,主要是把学校里的5大系,100多个班级全部纳入进来了,所以……
功能详见落伍的:http://www.im286.com/forumdisplay.php?fid=52


这家伙太懒,什么也没留下
yeshou 当前离线   回复时引用此帖
旧 2005-11-22, 09:36   #4 (页面定位)
yeshou
 
yeshou 的头像
 
注册日期: 2005-09-06
帖子: 7033
yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀yeshou 有着人尽皆知的贡献和荣耀
默认

用文件比较器对比一下 在相应的地方坐修改就可以了

引用:
作者: 扬子
一、转换完毕后,请先到 vB 后台更新计数器!
然后用当前目录下的 functions_login.php 覆盖 vB 目录/includes/functions_login.php。
如果版本不统一或者已作修改,请按照以下步骤编辑 vB 目录/includes/functions_login.php:
找到
-------------------------------------------------------------------------------------
if (
$bbuserinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $bbuserinfo['salt']), '') AND
$bbuserinfo['password'] != md5($md5password . $bbuserinfo['salt']) AND
$bbuserinfo['password'] != iif($md5password_utf, md5($md5password_utf . $bbuserinfo['salt']), '')
&nbsp
{
return false;
}
-------------------------------------------------------------------------------------
修改为:
-------------------------------------------------------------------------------------
// 检验是否为动网转换过来的用户。
if (strlen($bbuserinfo['password']) == 16)
{
// 检验 16 位的 MD5 是否匹配。
if (
$bbuserinfo['password'] != iif($password AND !$md5password, substr(md5($password), 8, 16), '') AND
$bbuserinfo['password'] != substr($md5password, 8, 16) AND
$bbuserinfo['password'] != iif($md5password_utf, substr($md5password_utf, 8, 16), '')
&nbsp
{
return false;
}

// 获取新密码。
include('./includes/functions_user.php');
$userSalt = fetch_user_salt(3);
if (!empty($password) AND !isset($md5password))
{
$newPassword = md5(md5($password) . $userSalt);
}
else if (!empty($md5password))
{
$newPassword = md5($md5password . $userSalt);
}
else
{
$newPassword = md5($md5password_utf . $userSalt);
}

// 更新该用户的密码。
$DB_site->query('
UPDATE ' . TABLE_PREFIX . 'user
SET
password = "' . addslashes($newPassword) . '",
salt = "' . addslashes($userSalt) . '"
WHERE userid = ' . $bbuserinfo['userid']
 
}
else
{
if (
$bbuserinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $bbuserinfo['salt']), '') AND
$bbuserinfo['password'] != md5($md5password . $bbuserinfo['salt']) AND
$bbuserinfo['password'] != iif($md5password_utf, md5($md5password_utf . $bbuserinfo['salt']), '')
&nbsp
{
return false;
}
}
-------------------------------------------------------------------------------------
这个是DVBBS7.0转换到Version 3.0.7 后的“检验是否为动网转换过来的用户”代码,请问我又从Version 3.0.7后升级到vBulletin 3.5.1版本,这样上面的代码就不能用了,请问如何更改includes/functions_login.php?? 上面代码在Version 3.0.7 里我试过了,好用的,可是升级后不知道如何更改了。


这家伙太懒,什么也没留下
yeshou 当前离线   回复时引用此帖
旧 2005-11-22, 10:33   #5 (页面定位)
扬子
 
扬子 的头像
 
注册日期: 2005-09-05
帖子: 909
扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人
默认

我已经把新版的functions_login.php里的
if ($vbulletin->userinfo = $vbulletin->db->query_first("SELECT userid, usergroupid, membergroupids, username, password, salt FROM " . TABLE_PREFIX . "user WHERE username = '" . $vbulletin->db->escape_string(htmlspecialchars_uni($username)) . "'"))
{
if (
$vbulletin->userinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != iif($md5password, md5($md5password . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != iif($md5password_utf, md5($md5password_utf . $vbulletin->userinfo['salt']), '')
)
{
$return_value = false;


全部替换成这样:
// 检验是否为动网转换过来的用户。
if (strlen($vbulletin->userinfo['password']) == 16)
{
// 检验 16 位的 MD5 是否匹配。
if (
$vbulletin->userinfo['password'] != iif($password AND !$md5password, substr(md5($password), 8, 16), '') AND
$vbulletin->userinfo['password'] != substr($md5password, 8, 16) AND
$vbulletin->userinfo['password'] != iif($md5password_utf, substr($md5password_utf, 8, 16), '')
)
{
return false;
}

// 获取新密码。
include('./includes/functions_user.php');
$userSalt = fetch_user_salt(3);
if (!empty($password) AND !isset($md5password))
{
$newPassword = md5(md5($password) . $userSalt);
}
else if (!empty($md5password))
{
$newPassword = md5($md5password . $userSalt);
}
else
{
$newPassword = md5($md5password_utf . $userSalt);
}

// 更新该用户的密码。
$DB_site->query('
UPDATE ' . TABLE_PREFIX . 'user
SET
password = "' . addslashes($newPassword) . '",
salt = "' . addslashes($userSalt) . '"
WHERE userid = ' . $vbulletin->userinfo['userid']
);
}
else
{
if (
$vbulletin->userinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != md5($md5password . $vbulletin->userinfo['salt']) AND
$vbulletin->userinfo['password'] != iif($md5password_utf, md5($md5password_utf . $vbulletin->userinfo['salt']), '')
)
{
return false;
}
}
扬子 当前离线   回复时引用此帖
旧 2005-11-22, 10:34   #6 (页面定位)
扬子
 
扬子 的头像
 
注册日期: 2005-09-05
帖子: 909
扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人扬子 是一个将要出名的人
默认

改后还是不行,野兽你最好了,帮帮弄个完整的贴上来吧。
扬子 当前离线   回复时引用此帖
旧 2006-02-28, 17:12   #7 (页面定位)
joey
 
注册日期: 2005-10-04
帖子: 51
joey 是普普通通的会员
默认

http://17cp.com/bbs/showthread.php?p=622#post622

可参照如下代码
PHP 代码:
[code]        //兼容动网论坛密码验证

        
if (!$vbulletin->userinfo['salt'] AND (strcmp($vbulletin->userinfo['password'], iif($password AND !$md5passwordsubstr(md5($password), 816), '')) == OR strcmp($vbulletin->userinfo['password'], substr($md5password816) == 0)))

        {

            require_once(
DIR '/includes/functions_user.php');

            
$vbulletin->userinfo['salt'] = fetch_user_salt(3);

            
$vbulletin->userinfo['password'] = iif($password AND !$md5passwordmd5(md5($password) . $vbulletin->userinfo['salt']), iif($md5passwordmd5($md5password $vbulletin->userinfo['salt']), md5($md5password_utf $vbulletin->userinfo['salt'])));

            
$vbulletin->db->query_write("UPDATE " TABLE_PREFIX "user

                                SET salt = '" 
addslashes(htmlspecialchars_uni($vbulletin->userinfo['salt'])) . "',

                                password = '" 
addslashes(htmlspecialchars_uni($vbulletin->userinfo['password'])) . "'

                          WHERE username = '" 
addslashes(htmlspecialchars_uni($username)) . "'");

        }

        else if (

            
$vbulletin->userinfo['password'] != iif($password AND !$md5passwordmd5(md5($password) . $vbulletin->userinfo['salt']), '') AND

            
$vbulletin->userinfo['password'] != iif($md5passwordmd5($md5password $vbulletin->userinfo['salt']), '') AND

            
$vbulletin->userinfo['password'] != iif($md5password_utfmd5($md5password_utf $vbulletin->userinfo['salt']), '')

        )

        
// 兼容动网论坛密码验证修改结束[/code] 
joey 当前离线   回复时引用此帖
回复

书签

标签

主题工具
显示模式 对此主题评分
对此主题评分:



所有时间均为北京时间。现在的时间是 14:09