webwiz是一个基于ASP的论坛,由于此官方论坛已经停止维护,官方网站很长时间无法登录了,由于ASP的先天缺陷,而且正好PHPBB3也已经到RC1了,就决定把这个论坛进行转换。
1、实际情况
我们使用的WEBWIZ 7.9使用的是ACCESS数据库,并且在使用过程中有一定的修改,但我不清楚有哪些修改,因此,你的转换若有问题,也请反馈你的实际情况。
头像有三种,一种是系统提供的,在avatars目录下,另一种是用户上传的头像,放在uploads目录下,还有一种是HTTP连接,就是放在另外网站上的头像。
WEBWIZ的附件是直接存放在uploads目录下,但数据库里没有任何相关信息。
WEBWIZ的密码是采用了HASHEncode+Salt的加密算法,和SHA1类似,但不同。
2、转换程序
phpBB3只提供了从phpbb2的升级程序,在phpbb的官方论坛上搜索到了一个从webwiz到phpbb2的转换程序,但其转换的内容不完整,因此就决定自己写一个。而且PHPBB3现在已经采用了UTF8编码,要求数据库也要采用UTF8编码,MYSQL 4.1之后的程序也提供了UTF8编码。
首先需要转换ACCESS数据库到MYSQL,我前面有介绍过如何进行转换。
我是使用了knoda进行数据转换的,在ubuntu系统下,注意,转换好后,数据库是默认为UTF8编码的。
转换完后,导出mysql数据。
mysqldump --default-character-set=utf8 -uroot yourdb > yourdb.sql
要修改此SQL文件,使之成为UTF8编码。替换所有的utf8为utf8,并在文件的开始添加:
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
然后转移到测试服务器上,并进行相应的导入工作。
在http://www.phpbb.com下载最新的phpbb3,根据安装提示,安装一个默认的空白的PHPBB3系统,假如你的数据库是phpbb。
并把webwiz论坛的所有文件拷贝到同一个服务器上,二者目录可以在一个层次。
如:
/var/www/phpbb
/var/www/webwiz
然后把我提供的转换程序拷贝到phpbb/install/convertors目录下,即convert_webwiz.php和functions_webwiz.php文件。
同时修改phpbb/includes/auth/auth_db.php文件,若你想让你的用户重新申请密码的话,也可以不修改这个文件。
// Check password ...
// added for webwiz conversion
// HashEncode is webwiz function.
global $phpbb_root_path, $phpEx;
require($phpbb_root_path . 'includes/functions-webwiz-hash.' . $phpEx);
if (!$row['user_pass_convert'] && (md5($password) == $row['user_password']
or HashEncode($password.$row['salt'])==$row['user_password']))
{
if (md5($password)!=$row['user_password'])
{
// Unconverted password
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_password = "'.md5($password).'"
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
}if ($row['user_login_attempts'] != 0)
这个前面的$sql语句中要添加一个字段:salt。
若修改了此文件,还要拷贝functions-webwiz-hash.php到phpbb/includes/目录下。
然后就可以在PHPBB的安装界面那儿进行系统的转换了。
发表回复