moqi88 / ythtbbs Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/ythtbbs
License: GNU General Public License v2.0
Automatically exported from code.google.com/p/ythtbbs
License: GNU General Public License v2.0
1.备份数据库
2.升级
3.删除升级目录
Original issue reported on code.google.com by [email protected]
on 17 Aug 2010 at 5:20
经过Fenlix测试,发现以前的代码在ythtlib/strop.c里有个比较隐��
�的错误,造成字符串越界。
部分密码可能导入的有问题,需要对groupid为20的用户,进行��
�次追加导入,修正这些问题。
需要修改tranythttodiscuz.c,增加这一功能
Original issue reported on code.google.com by [email protected]
on 31 Aug 2010 at 8:24
考虑到discuzx的board可能会移动或改变,此时telnet下的版面需��
�分离出一个简单的挂接功能,不能再通过导入的方式来进行�
��接。
通过判断版面中文名,对应到discuzx的forum
id,然后把这个id写到struct boardheader里面,再写回.BOARDS
Original issue reported on code.google.com by [email protected]
on 16 Sep 2010 at 7:32
telnet下注册时,
1.需要显示论坛规则 (读取discuz下文件)
(可以在验证码那一页做这个事情)
2.需要用户做规则确认(Y/N)判断
Original issue reported on code.google.com by [email protected]
on 30 Jul 2010 at 7:02
在jingcai.c里面,调用了usesql.h
这个里头的用户名密码是打开telnet精彩话题的数据库的,其��
�量定义和discuzsql.h里面的常量名相同。造成编译时出现重复��
�义。
需要区分开来
Original issue reported on code.google.com by [email protected]
on 9 Aug 2010 at 6:41
用户在telnet下,当天首次登陆,需要追加相关积分到discuzx中�
��
Original issue reported on code.google.com by [email protected]
on 6 Oct 2010 at 5:27
在main.c里面增加判断,如果注册的用户是discuz
web下注册的数据库用户,而.PASSWDS里没有,则判断后在.PASSWDS�
��件里添加此用户,并重新读入。
Original issue reported on code.google.com by [email protected]
on 20 Jun 2010 at 11:54
重新写md5加密的函数,当用户属于discuz下注册的用户时,其��
�码判断为discuz下的加密算法。
Original issue reported on code.google.com by [email protected]
on 20 Jun 2010 at 11:56
telnet注册或导入后,
discuzX首页显示的注册用户数有误,一直不变。
修好这个bug
Original issue reported on code.google.com by [email protected]
on 31 Jul 2010 at 6:55
巫山霏云:
这样,首先用老的加密一次,看是否匹配,如果匹配,替换��
�新的密码,如果不匹配,就用新的再试一次,如果还是不匹�
��,就可以认为密码错误,否则就认为是 ok
或者反过来也可以,先判断新的密码
bridgeduan: 是的
都可以
巫山霏云: 嗯,那就这样了
现在web是怎么判断密码的?
和telnet同步了么
--------------------------------------------
生成discuz的md5密码的地方在./ythtlib/crypt.c
int
gendiscuzpasswd(char* discuzpassmd5, const char *salt, const char *passbuf)
其中discuz的salt是注册时六个随机生成的16进制数字
--------------------------------------------------------------------
ancienttelnetlogin插件是一个8.16以前注册程序未修改时注册的teln
et老用户在 discuzx下的登录插件
主要文件所属目录为
DISCUZ_ROOT/source/plugin/ancienttelnetlogin/ancientlogin.inc.php
里头有 exec(DISCUZ_ROOT."/source/plugin/ancienttelnetlogin/discuzgenpasswd
$salt $password", $res);
调用ytht代码里local_utl/discuzgenpasswd.c文件来生成ytht下的md5密码
这个调用可能会造成注入攻击漏洞,如果有空请帮我修改,��
�没有相应的技术能力。多谢
-----------------------------------------------------------------
巫山霏云:
我在想啊,为什么我们要舍近求远呢,干脆找个标准的md5函��
�替换了ytht的可以不?用户在输入的时候先判断是否是新密码
,如果是原来的加密的,则用新的加密函数生存新的密码保��
�,以后就和这个对比,这样的话,两边都很容易了
bridgeduan: 汗,这当然更好了!
那我给你开个任务?
这样的话就没有任何困难了
我telnet下修改密码的程序也好写了
巫山霏云: 嗯?
行,要怎么搞
bridgeduan:
就这么改,现在的还保存,但是把register和login时生成的salt和
md5都改成discuzx的模式和加密方法
等这个改完后,web下登录老用户时,提醒它在telnet下先登录
这样就不需要exec()了
ytht生成discuz的md5函数我已经写好了
我回头给你
巫山霏云: 嗯,我们现在的用户也不多吧?
bridgeduan: 对,700多才
巫山霏云: 嗯,这样的话,也好做
bridgeduan: 那我更新任务去了,你到时看看
巫山霏云: 好
bridgeduan: 总之最好是无缝地更新上:)
多谢多谢:)
bridgeduan: 现在已经和telnet同步
读取数据库,如果用户所属的组(groupid)是20,表示为原ytht老
用户
此时调用discuzgenpasswd来生成ytht的md5,然后更新组为10,新手��
�路,更新为discuz的salt和md5
以后就是直接用discuz的原始登录了
巫山霏云:
但不是说discuzgenpasswd会有过滤么,这样的话就没办法和原来��
�一致了吧?
bridgeduan: 是的,但是用分号和引号做密码的老用户很少
至于新用户不过滤,直接在discuz数据库里读
只要更新了就不过滤了
巫山霏云: 嗯
明白的
新用户的密码是直接用的dz的吧
bridgeduan: 还不完全是,如果是现在在telnet下注册的新用户
数据库里存储的是dz的茅
md5,.PASSWDS文件里存储的是ytht的md5
巫山霏云: 嗯。那就这样。。。替换telnet的密码
bridgeduan: 我已经给你发信了,更新了需求
有不明白的地方随时更新需求,我会自动收到信并回复
ytht代码我现在已经比较熟了,但你可能不熟
巫山霏云: 嗯,了解的
bridgeduan: :)
那多谢了
其实函数我都写好了
巫山霏云: 是啊:)
bridgeduan: 当时之所以不那么做
是因为当时没读懂ytht的md5,另外ytht生成的salt和discuz的salt有�
��大区别,存储上你得费点心思,比较麻烦
ytht的salt是个signed long,discuz的salt是一个六个16进制的字符串
存到.PASSWDS时可能会出现问题,所以要考虑转换函数
巫山霏云: 你是说salt还是说的生成的密码?
bridgeduan: 是salt
帽密码都是一样的,只不过discuz解码过,ytht是二进制存储
md5密码
巫山霏云:
salt应该是不用关心的,最后生成的密码应该是一样的
嗯
bridgeduan: 嗯
一开始我们还想过放弃.PASSWDS,但是技术上的代价更大了
Sent at 2:18 PM on Friday
巫山霏云:
gendiscuzpasswd这个函数生成的就是discuz的是吧?参数是(返回��
�,salt,密码)?
bridgeduan: 是的
我们目前在register.c里面用到
新注册的每个telnet用户会自动地在discuzx下生成一个discuz的salt
和md5
在第215-219行 ./src/register.c
Original issue reported on code.google.com by [email protected]
on 13 Sep 2010 at 6:11
目前数字和下划线不能用于telnet帐号,但是discuz中是允许的��
�这方面的限制要去掉。
Original issue reported on code.google.com by [email protected]
on 29 Jul 2010 at 6:58
看看是不是哪个表忘写或者写错了。
应该是telnet注册写入的程序造成的。discuz的登录匹配非常奇��
�。
Original issue reported on code.google.com by [email protected]
on 10 Aug 2010 at 3:17
telnet下回复需要在discuzx版面中显示
1.找到版面
2.找到thread
3.把这个回复塞入到这个thread中去
Original issue reported on code.google.com by [email protected]
on 17 Aug 2010 at 9:30
现在的情况是telnet注册时给密码。
登陆后也要做相应修改,如果用户在discuzx里的密码是老的ytht
密码,可以调用新的程序,转换成新密码。
Original issue reported on code.google.com by [email protected]
on 29 Sep 2010 at 9:06
telnet下激活discuz账号后,会错误地调用new
register里面的check_register_info();
造成数据库被重复写入。email账号被覆盖。
Original issue reported on code.google.com by [email protected]
on 9 Aug 2010 at 2:40
现在的文章链接是njuweb的,需要转成discuz的
并且discuz是用thread表示。
Original issue reported on code.google.com by [email protected]
on 1 Aug 2010 at 4:47
在版面同步做完后,发布一个1.0.02版本的ytht代码与相应discuzx
插件在sf和google code里。
Original issue reported on code.google.com by [email protected]
on 2 Oct 2010 at 1:03
给版面加上web互通的标记
这个标记放在boardheader的flag2里面,叫DISCUZWEB_FLAG,有这个标��
�的版面,版面列表里显示为W
改为直接用数据库访问。
这个标记可以在后台直接修改。
Original issue reported on code.google.com by [email protected]
on 10 Sep 2010 at 3:04
在src中的改动telnet下编译能通过,但是ssh下,需要make
install如上所示目录。
这个目录下的Makefile.am并没有支持sql函数的功能,要加上
-----------------------------------
目前许多修改都要读取discuzx数据库,src也实现了数据库这块�
��编译。
但是smth_sshbbsd目录下却无法编译src中已经编译成功并测试通��
�的文件。
src这块我是这么设置的(应该也是不规范的),可用于参考��
�
在src目录下加入mysql编译选项 Options
1 message - Collapse all - Report discussion as spam
bridged
View profile
More options Jul 13, 12:15 pm
由于在libythtbbs/user.c里面使用了mysql相关的函数,结果src里的�
��序link时发现找不到mysql库
查看src目录下的Makefile.am
发现$LDADD库(ytht自定义库)的定义是在Makerule.base里
LDADD = $(LIBS) $(top_srcdir)/libythtbbs/libythtbbs.a $(top_srcdir)/
ythtlib/libytht.a
可加上
LDADD = $(LIBS) $(top_srcdir)/libythtbbs/libythtbbs.a $(top_srcdir)/
ythtlib/libytht.a -lmysqlclient
这样调用ythtlib时,就可以自动链接上mysql编译选项。
Reply Reply to author Forward
End of messages
« Back to Discussions
Original issue reported on code.google.com by [email protected]
on 6 Sep 2010 at 1:51
导入时无法查到发文时的useip,需要查询后导入到数据库中。
Original issue reported on code.google.com by [email protected]
on 25 Oct 2010 at 6:35
用户在telnet下发帖
需要追加相应积分到discuzx中
Original issue reported on code.google.com by [email protected]
on 6 Oct 2010 at 5:27
ancienttelnetlogin插件是一个8.16以前注册程序未修改时注册的teln
et老用户在 discuzx下的登录插件
主要文件所属目录为
DISCUZ_ROOT/source/plugin/ancienttelnetlogin/ancientlogin.inc.php
里头有 exec(DISCUZ_ROOT."/source/plugin/ancienttelnetlogin/discuzgenpasswd
$salt $password", $res);
调用ytht代码里local_utl/discuzgenpasswd.c文件来生成ytht下的md5密码
这个调用可能会造成注入攻击漏洞,如果有空请帮我修改,��
�没有相应的技术能力。多谢
Original issue reported on code.google.com by [email protected]
on 31 Aug 2010 at 7:59
导入ytht版面文章时,由于已删除文章依然在.DIR内,因此需要
做跳过处理。
参见bbscon.c
if (dirinfo->owner[0] == '-') {
mmapfile(NULL, &mf);
MMAP_UNTRY;
http_fatal("本文已被删除");
}
Original issue reported on code.google.com by [email protected]
on 12 Oct 2010 at 3:10
原有的telnet用户,注册时并未写入到discuz,需要做一次导入��
�将用户信息导入到discuz数据库内。
Original issue reported on code.google.com by [email protected]
on 29 Jul 2010 at 6:59
telnet下发表一篇主题文章
需要在discuzx下另建主题,并将文章内容放进来,附件不用考�
��,因telnet目前无传附件功能。
Original issue reported on code.google.com by [email protected]
on 17 Aug 2010 at 9:13
用户系统合并时,一共改变了登录和注册两个页面,登录一��
�功能,增加了一个插件
对此需要写一个注释,以便让大家安装。
Original issue reported on code.google.com by [email protected]
on 19 Aug 2010 at 6:02
在discuzx注册页,register.htm,写出激活老用户帐号的提示
Original issue reported on code.google.com by [email protected]
on 19 Aug 2010 at 6:00
目前写入的密码依然是老的md5
需要把新注册的用户全部改为写入新密码,这样就方便设计��
�。
以前的老用户毕竟是有限的,一个个逐步处理比较方便。
这样就不用烦恼插件的事情了。
分为两步,一个是写入新的userid和新的salt与md5pass
另一个是写入email和firstlogin time。
原先的设计是有问题的。
Original issue reported on code.google.com by [email protected]
on 2 Aug 2010 at 5:34
在用户积分规则敲定以后,
将ytht下的用户操作积分,简单折算后导入到discuzx相关表中。
Original issue reported on code.google.com by [email protected]
on 6 Oct 2010 at 5:27
转信方式请参见SYSOP版置底第一文
这是一年前的转信方式,除了图片应该都能转成功的,但是��
�启后似乎不行了(但不保证问题和重启相关),接受不到。
比如转到[email protected],应该能转到traingle版,并且在post版
生成一个转移通知文件,现在两者都没有。
转信的版面帐号定义在
/etc/aliases
的#BBS下面
如果需要修改(按理是不需要修改的),要用root权限。
Original issue reported on code.google.com by [email protected]
on 2 Sep 2010 at 6:04
现在telnet下的附件是njuweb的链接,需要转为discuzX认可的链接
Original issue reported on code.google.com by [email protected]
on 1 Aug 2010 at 4:43
升级discuzx 到V1.5RC 20100910版本
看看是否解决了创始人无法登陆的问题
Original issue reported on code.google.com by [email protected]
on 10 Sep 2010 at 8:31
排查register.c和transythttodiscuz.c两个程序
注册所影响的用户组:(有些不一定是注册时影响的,可能��
�自动登录时添加的)
用户的id号取决于pre_ucenter_members的插入id号,自增。
pre_common_credit_rule_log
pre_common_member (已写)
pre_common_member_count (需要写)
pre_common_member_field_forum
pre_common_member_field_home
pre_common_member_log
pre_common_member_profile
pre_common_member_status
pre_common_stat
pre_common_statuser
pre_ucenter_memberfields
pre_ucenter_members (已写)
pre_ucenter_pms
Original issue reported on code.google.com by [email protected]
on 12 Aug 2010 at 3:43
需要修改crypt.c里面get_salt_md5,以及生成salt值的两个算法。
原有ytht用户登录时,如果使用原有的密码加密算法计算md5,�
��自动切换成该算法重新存储新值。
Original issue reported on code.google.com by [email protected]
on 20 Jun 2010 at 11:58
根据协同写作系统的idea,参考smartstar, Fenlix, pzhg, chy,
datiechui,
joshua反馈的意见,写出“扩展精华区”,英文名是distillate
writing system的概念设计。
使用Visio 2003制作。插件搭建在discuzx 1.5RC
默认版面和群组模板上,并且开启右侧边栏。
Original issue reported on code.google.com by [email protected]
on 14 Sep 2010 at 8:51
telnet下注册的用户
在discuz登录时
需要进行有效性判断,做一次重注册。结束后即可转为登录��
�态。
Original issue reported on code.google.com by [email protected]
on 30 Jul 2010 at 7:05
升级discuzx到1.5正式版本(0920)
查看是否解决创始人不能登陆的问题
Original issue reported on code.google.com by [email protected]
on 20 Sep 2010 at 3:27
telnet注册时,discuz数据库同时写入相关的用户,以便实现同��
�。
目前所定位的表应该是pre_ucenter_member
Original issue reported on code.google.com by [email protected]
on 22 Jul 2010 at 8:04
1.处理发表文章
2.处理回复文章
主要是每次刷新.DIR在telnet下开销可能较大,暂时不适合那样�
��理。
文章页可以读数据库。
Original issue reported on code.google.com by [email protected]
on 18 Aug 2010 at 3:32
telnet下,如果用户帖子并标记为精华贴m
那么需要在discuzx相应版面内:
1.标记为推荐
2.追加相关积分
Original issue reported on code.google.com by [email protected]
on 6 Oct 2010 at 5:28
命令行模式:
transythttodiscuzx -boardname [bname] -date [startdate]
读取.DIR来转移版面
要求:
1.输入版面名称,和需要转移文章的日期。从ytht转移该名称��
�版面到discuzx。文章转移日期为startdate到至今的。
2.版面需要转移
(1).版面英文名
(2).版面文章列表
3.文章需要转移
(1).文章名
(2).作者名
(3).文章发表时间
(4).同主题链
(5).文章内容
(6).回复内容
(7).附件
(8).相关HTML语法
(9).文章标记 g,m,锁定等
Original issue reported on code.google.com by [email protected]
on 17 Aug 2010 at 9:01
discuzx下修改密码时,不会同步到telnet,因为开发力量的原因�
��个用处很小的功能不做了,这事需要在页面模板上给出说明
。
Original issue reported on code.google.com by [email protected]
on 13 Sep 2010 at 6:12
导入原有的blog数据到discuzX
1.和导入后的用户匹配上
2.如果有图片附件的(应该不多),手工重新加上
Original issue reported on code.google.com by [email protected]
on 9 Aug 2010 at 6:47
现在telnet代码下的write log非常不规范
需要写一个规范的write log出口,用于调试和报错。
Original issue reported on code.google.com by [email protected]
on 3 Aug 2010 at 6:10
从数据库里取出
考虑
1.怎样匹配版面?
2.怎样读数据库?
3.怎样定位。
废弃原有的文件系统。
Original issue reported on code.google.com by [email protected]
on 18 Aug 2010 at 3:34
在telnet下修改密码,
目前和discuzx是分离的,
需要在telnet修改密码成功后,更新discuz数据库中,pre_common_mem
ber和pre_ucenter_member中存储的密码和md5信息。
Original issue reported on code.google.com by [email protected]
on 13 Aug 2010 at 8:04
telnet激活discuz账号后,大小写判定成为激活时输入的账号
造成其大小写和discuz里的不一致。
需要加上这个判定
Original issue reported on code.google.com by [email protected]
on 9 Aug 2010 at 5:45
转换ytht原有发表的文章
为discuzx下ubb代码
并且在forum_post表中张贴
可以参考mem2html程序实现
Original issue reported on code.google.com by [email protected]
on 6 Oct 2010 at 5:26
telnet下版面人气
重启后,不再自动打开,成为0
需要写一份文档,告知如何打开
Original issue reported on code.google.com by [email protected]
on 31 Jul 2010 at 4:27
考虑到有些版面文章很多,需要考虑转换文章时的步进值
比如一次转换5-10篇文章,以避免及排查可能的错误。
Original issue reported on code.google.com by [email protected]
on 25 Oct 2010 at 6:35
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.