求解CSDN的结贴怎么实现的~

阳明 to life 2011-02-12 10:51:44
我现在在做一个网站,觉得CSDN这个结贴模式还行,但是一点思路都没有,求思路~(80分)
另外还有个问题,我在系统中用到了cookie,而我又想实现用户每天第一次登陆赠送论坛币,那如果用户不进行手工登陆就没法实现赠送;如果在每个page_load里面检测那是不是对页面载入有比较大的影响,而且每次都要对数据库读写- -||拍死我吧,这个肯定不行(20分)
...全文
343 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
breezily 2011-02-15
  • 打赏
  • 举报
回复
之前注册就有积分的,
现在要回帖才有,
就回个贴吧
loveyousomuch 2011-02-15
  • 打赏
  • 举报
回复
呵 很早前公司 自己做论坛 我就照着csdn做了个结贴的功能
实现 很简单
无非是用js控制一下
dalmeeme 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhouyuqwert 的回复:]
引用 5 楼 dalmeeme 的回复:
在第一个textbox里面输入一个分之后,在另外一个textbox再输入会发现剩余分减去了上次输入的分;再就是如果存在分页的怎么办,我换个页面,前面页面输入的分不就刷新掉了?[/Quote]
可以用js操作,当文本框获得焦点时判断一下,做个减法就行了。分页的话可以用无刷新的方式,用js的全局变量存放总分和当前可分配分,或者把这两个变量的值存在隐藏域里,下一页还是能取到的。
Cool_xiaocao 2011-02-12
  • 打赏
  • 举报
回复
还是一个比较经典的问题
子夜__ 2011-02-12
  • 打赏
  • 举报
回复
CSDN结贴模式的BBS

这个里面就是实现CSDN结贴模式的。 看看吧。

问题2、 你这个可以每天12点从数据库中查询用户登录情况。(JOB) 如果用户最后登录时间在今天内 那么就集体加积分。。。这就是为什么CSDN 今天回复 明天加可用分的原因了。。
回头是岸 2011-02-12
  • 打赏
  • 举报
回复
cookie实现。写入用户名、密码、登录时间。页面onload得时候去cookie取数据并做检验。
porschev 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhouyuqwert 的回复:]

引用 5 楼 dalmeeme 的回复:

结帖不难的应该。数据库中“主题帖”表设一字段“结帖”,初值为0(false),用户点“结帖”按钮后把该字段设成1(true)。就是要注意需要判断一下:1:只有主题帖所有者和管理员才能结帖;2:结帖时需要知道“主题帖ID”字段的值,这个可以从url或页面上某个隐藏域获取。
其他有遗漏的地方大家再补充。

可能我的表述不太清楚,我不是说结贴如何去……
[/Quote]

用JS加减总行吧。。。。分页也可以无刷新分页啊。。。

这种结帖操作。。。我觉得都没必要用翻页。。。。

真多了人也不会去翻着给分。。。。跟CSDN一样。。。做个平均分的功能。。。
porschev 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhouyuqwert 的回复:]

引用 1 楼 porschev 的回复:
结帖怎么了。。。无非是个加减法。。。

思路没什么特别的。。。

你赠送币的方法很怪。。。劝你还是更新数据库的好。。。每次登陆更新一下最后登陆时间。。。

如果当前时间。。比更新前的登陆时间至少大1天。。。就给论坛币。。。


他如果第一天登录了设置coockie为一个月不用登录 他第二天再访问页面就不需要手动登录,没触发登录按钮事件……
[/Quote]

不要纠结在点不点登陆换钮。。。

就算你cookies里设一万年过期。。。它照样也只是储存登陆信息。。。

它不会帮你登陆。。。照样还是要登陆方法里才会登陆。。。

只是说检查有没有这个cookies...有就不用用户输入了。。。帮它登上。。。

它照样走了登陆的方法。。。。所以。。。更新登陆时间是没有问题的。。。
阳明 to life 2011-02-12
  • 打赏
  • 举报
回复
刚发现CSDN有个55层楼的都没分页?!是不是回复里面不进行分页了,如果有个几百层楼那不是载入慢死了
阳明 to life 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hualilihua 的回复:]

登陆后回帖了才赠送论坛币 根据这一点为什么不建一个sql代理作业呢
[/Quote]
呵呵 我想登录就给分~
阳明 to life 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dalmeeme 的回复:]

结帖不难的应该。数据库中“主题帖”表设一字段“结帖”,初值为0(false),用户点“结帖”按钮后把该字段设成1(true)。就是要注意需要判断一下:1:只有主题帖所有者和管理员才能结帖;2:结帖时需要知道“主题帖ID”字段的值,这个可以从url或页面上某个隐藏域获取。
其他有遗漏的地方大家再补充。
[/Quote]
可能我的表述不太清楚,我不是说结贴如何去操作数据库或者谁去结贴
我点击了结贴按钮后,需要一次性把所有分都给出去,在第一个textbox里面输入一个分之后,在另外一个textbox再输入会发现剩余分减去了上次输入的分;再就是如果存在分页的怎么办,我换个页面,前面页面输入的分不就刷新掉了?
回头是岸 2011-02-12
  • 打赏
  • 举报
回复
登陆后回帖了才赠送论坛币 根据这一点为什么不建一个sql代理作业呢
myhope88 2011-02-12
  • 打赏
  • 举报
回复
结贴没啥的吧
阳明 to life 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 porschev 的回复:]
结帖怎么了。。。无非是个加减法。。。

思路没什么特别的。。。

你赠送币的方法很怪。。。劝你还是更新数据库的好。。。每次登陆更新一下最后登陆时间。。。

如果当前时间。。比更新前的登陆时间至少大1天。。。就给论坛币。。。
[/Quote]

他如果第一天登录了设置coockie为一个月不用登录 他第二天再访问页面就不需要手动登录,没触发登录按钮事件,怎么更新我知道,主要是他不触发登录按钮事件,我就必须在每个pageLoad里面读写数据库
windy19871011 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dalmeeme 的回复:]
结帖不难的应该。数据库中“主题帖”表设一字段“结帖”,初值为0(false),用户点“结帖”按钮后把该字段设成1(true)。就是要注意需要判断一下:1:只有主题帖所有者和管理员才能结帖;2:结帖时需要知道“主题帖ID”字段的值,这个可以从url或页面上某个隐藏域获取。
其他有遗漏的地方大家再补充。
[/Quote]
恩,可以的。结贴给分就根据ID取得原来的分数啊,加加减减就行。
dalmeeme 2011-02-12
  • 打赏
  • 举报
回复
结帖给分也是不难的,我就不多说了。
dalmeeme 2011-02-12
  • 打赏
  • 举报
回复
结帖不难的应该。数据库中“主题帖”表设一字段“结帖”,初值为0(false),用户点“结帖”按钮后把该字段设成1(true)。就是要注意需要判断一下:1:只有主题帖所有者和管理员才能结帖;2:结帖时需要知道“主题帖ID”字段的值,这个可以从url或页面上某个隐藏域获取。
其他有遗漏的地方大家再补充。
xiaowen_ly 2011-02-12
  • 打赏
  • 举报
回复
试试比较时间看看
chaios 2011-02-12
  • 打赏
  • 举报
回复
大于一天的话……记得把时分秒都去了,就比日期
windy19871011 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 porschev 的回复:]

思路没什么特别的。。。

你赠送币的方法很怪。。。劝你还是更新数据库的好。。。每次登陆更新一下最后登陆时间。。。

如果当前时间。。比更新前的登陆时间至少大1天。。。就给论坛币。。。
[/Quote]

只需在第一次登录后,判断此登录时间和前一次的登录时间做比较(>1天)。给论坛币。
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧