游客:
注册
|
登录
|
会员
|
Delphi Tips
|
CJC Delphi技巧馆
CJC英语资料馆
»
其它 (技术)
» 论坛从 VBB 转到 Discuz 的痛苦经历
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 论坛从 VBB 转到 Discuz 的痛苦经历
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#1
发表于 2007-10-17 23:56
资料
个人空间
短消息
加为好友
论坛从 VBB 转到 Discuz 的痛苦经历
数据库从mysql 4.0 迁移到 5.0, 然后又迁到5.1上,编码已经乱了。为解决这个乱码的问题,花了整一周的时间才理清线索。
2004年:
新建论坛, mysql4+vbb3.0 (vbb使用latin1连接) -- phpmyadmin显示正常,vbb 3.0显示正常
2006年:
转到另一服务商,原导出的dump数据是latin1编码存储的, mysql5服务器使用的编码是utf-8, 别的编码存储的时候,都会转到utf-8保存, 新服务商导入时, 不知道是怎么操作的,变成导入后存储在db中实际数据格式还是latin1而不是utf-8, 这好处是我使用的vbb3.0使用latin1连接读出的数据正常,不乱码,但用新的phpmyadmin和vbb3.5都是乱码。-- phpmyadmin显示乱码,vbb 3.0显示正常
2007年:
转回原服务商,mysql5+discuz 5.5, 由于上一服务商的mysql5服务器使用的编码是utf-8, 我的数据在数据器上却实际还是latin1的, 所以在我用phpmyadmin导出的时候,进行了一次utf-8反编码,打开导出的.sql文件一看,导出的中文全是乱码,而编码说明上写的是 DEFAULT CHARSET=latin1 (其实这是进行过一次utf-8反编码的latin1),所以我再用什么方法导入到新的mysql5.1中,都是乱的。而且发觉比上一服务商里用phpmyadmin里看到的更乱。我装上旧的3.0vbb看到的也是乱码。我想,至少要导入后的数据,看起来和原来的乱得一样,用vbb3.0才能看到正常汉字。
我把导出的.sql表中所有的 "DEFAULT CHARSET=latin1" 用文本编辑器替换成了 "DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci", 保存,然后在用phpmyadmin导入时,编码选 binary, 导入后,发现用phpmyadmin看竟然和原来的乱到一模一样了,用vbb3.0又可以看到中文了。
但要转换到discuz, 必须让phpmyadmin也能看到正常中文才可以。
(如果导出的时候,用原来的3.0vbb进admin后台导出数据,可能能得到正确的编码,不过我的网页已经被上一服务商禁止访问了,手上只剩下.sql的备份。)
后来找到个软件navicat8.0, 在建连接的时候,选mysql 字符集 GBK encoding, 数据为的encoding和 collation 都选GBK,连接db的时候报了个错误提示 "1253 - COLLATION utf8_bin is not valid for CHARACTER SET latin1",忽略后,进去看表,竟然是正常中文!! 尝试做Sql dump,服务器返回和上面一样的1253错,不能直接dump.
只能用Export功能,把表一个接一个的手工导出成GBK文件。累!
后来想了一下,转到discuz后很多表都没用了,只要把重要的几个表导出就行:
forum
thread
post
user
language
phrase
setting
我怀疑只要前面4个就行了,后3个可能都不需要。
导出后,把所有表合并到一个文件,然后用phpmyadmin导入到vbb3.68的数据库中(与上面相应的表要先清空). 编码选gbk (与export保存的格式要一样)
vbb3.68里终于可以看到正常的汉字了。
安装一个新的discuz5, 然后用vbb368转discuz5.5的php转换程序,顺利转到discuz。
至此,迁移成功!!
后来发现,转过后的贴子里的图片附件,都要点击才能打开的,开始以为是设置问题,查了设置,设置是对的。
用phpmyadmin打开discuz的附件库cdb_attachments看了一下,发现有个字段 isimage (是图片?), 里面的值全是0,说明从vbb转过来的图片都当成一般附件了,所以看贴子时不直接打开。
用下面句子在phpmyadmin里处理一下,问题解决。
update cdb_attachments set isimage = 1 where (filename like '%.bmp') or (filename like '%.png') or (filename like '%.jpg') or (filename like '%.gif')
CJC 2007.
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#2
发表于 2007-10-18 21:54
资料
个人空间
短消息
加为好友
Discuz 5.5小bug
发现 discuz 5.5一个小Bug, 多处刷新注册码的中文提示都显示成!secode_refresh!, 原因是template_language.php中定义的变量是 seccode_refresh, 而模板中却用了 secode_refresh (少了一个c). 解决办法是 在template_language.php中增加多一行 secode_refresh的变量,或者逐一替换模板中的secode_refresh为seccode_refresh.
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#3
发表于 2010-5-19 12:43
资料
个人空间
短消息
加为好友
Discuz 6.1 中,动态修改全部变量的位置:
在 include/common.inc.php 文件中,找到 @extract($_DCACHE['settings']);
在该行后面修改就可以,比如 $bbname, $seotitle 等
增加全局用的子程序:
在 include/global.func.php 里
设置论坛 每页显示主题数, 主凸最大显示页数:
admincp.php -> 全局 -> 界面与显示 -> 主题列表页 -> 主题列表最大页数:
设置验证码与验证问题:
admincp.php -> 全局 -> 防灌水设置
Tag标签管理:
全局 -> 论坛功能 -> 主题标签(TAG
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#4
发表于 2010-5-25 01:52
资料
个人空间
短消息
加为好友
discuz 6.1 中一个奇怪的bug
在开启问题验证功能后,无法提交新贴子,长时间查错后,发现有一个语句有问题
include/seccheck.htm 文件 第40行:
<input type="text" name="secanswer" onBlur="checksecanswer()" size="25" maxlength="50" tabindex="2" />
应该增加 id="secanswer" , 变成:
<input type="text" id="secanswer" name="secanswer" onBlur="checksecanswer()" size="25" maxlength="50" tabindex="2" />
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#5
发表于 2010-7-17 09:06
资料
个人空间
短消息
加为好友
设置连接为红色字
使用 style="text-decoration:none",再设字体颜色:
cjc Home
[Copy to clipboard]
[
-
]
CODE:
<a href="http://xcjc.net" style="text-decoration:none">[color=red][u]cjc Home[/u][/color]</a>
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#6
发表于 2010-9-26 17:02
资料
个人空间
短消息
加为好友
安装discuz后,不能上传图片,就把所有目录权限设置为777, 结果报 500 Internal Server Error 错误,把所有权限设置为775后不再报 500 Internal Server Error 的错误。
重新安装discuz后就能上传图片了。
cjc
软件作者
UID 1
精华
18
积分 2773
帖子 1467
威望 2773
金钱 72
阅读权限 200
注册 2002-5-7
#7
发表于 2010-9-26 22:12
资料
个人空间
短消息
加为好友
Discuz 7.2 用户无法上传头像,报 db connect error (无权限).
因icdsoft默认是mysql4, 用mysql5的需另外设置变量。
1. 先查UC(user center) 能否正常通信,发现真的是连接不正常.
UCenter -> 应用管理 -> 编辑, 把 应用IP那项的 127.0.0.1 清空,之后测试正常
但uc正常后,还是不能上传图象
2. 修改 uc_server/data/config.inc.php,在最前面增加一行
ini_set('mysql.default_socket', '/tmp/mysql5.sock');
之后,头像上传正常。
投票
交易
悬赏
活动
CJC英语资料馆
英语资料
> 学习资料
> 文章精选
> 词库分享
> 技术问题
意大利语资料
> 意语资料
会员天地
> 来信选登
> 用户需求
辅助工具相关
> 其它 (生活)
> 小游戏
> 其它 (技术)
> 辅助工具资料
当前时区 GMT+8, 现在时间是 2024-11-24 08:07
粤ICP备2021113670号
TOP
访问量:
-
清除 Cookies
-
联系我们
-
CJC学习与技术分享