ubb风格论坛中自您上次来后有新的贴子的功能的asp实现

2016-01-29 19:29 5 1 收藏

ubb风格论坛中自您上次来后有新的贴子的功能的asp实现,ubb风格论坛中自您上次来后有新的贴子的功能的asp实现

【 tulaoshi.com - ASP 】

                
  
  关键词:ASP, ADO
  
  这是近来用asp改写ubb论坛的体会,不当之处请多多指正
  可参照chinaasp的网页俱乐部(就是个ubb风格的论坛)
  ubb论坛有个非常好的特点,就是会标志自您上次访问以来新增的贴子,主要在两个地方
  :讨论区列表和某一讨论区的帖子列表。
  通常所用的图形为on.gif,off.gif(讨论区列表),closed.gif,closedb.gif(某一讨论区的
  贴子列表),其中on.gif,closedb.gif表示自上次访问后新增或修改过的贴子。
  实现:
  通过综合使用Session和Cookie变量来实现
  1、Session变量
  firstin, 标识是否第一次进入该页面,还是通过刷新进入该页面
  2、Cookie变量
  这里作了简化,取消了原正式版ubb中的sessionlogin/lastLogin两个Cookie
  只使用sessionloginDT/lastLoginDT两个Cookie
  sessionLoginDT-保存上次登录的时间
  lastLoginDT-保存本次登录的时间
  原理:
  取上次登录时间为本此会话时间,并将此时间同讨论区最后一个贴子的时间或某一讨论区各
  主题的最后时间比较,根据实际情况选择适当的图形,如:
  
  if rsList.Fields("status")="close" then
      '主题关闭
      Response.Write ""
  else
      'Lastly为主题的post时间
      if rsList.Fields("Lastly")>sessionLoginDT then
      
          
          Response.Write ""
      else
          Response.Write ""
      end if
  end if
  
  页面:讨论区列表(default.asp)
  代码片段:
  if isempty(Session("FirstIn")) then
      '第一次进入或不允许使用Cookie
  
      '取上次访问时间并赋值给sessionLoginDT
      if not isempty(request.cookies("lastLoginDT")) then
          sessionLoginDT=request.cookies("lastLoginDT")
          if not isdate(sessionLogindt) then
              sessionlogindt=formatdatetime(now)
          else
              sessionLoginDT=cdate(sessionLoginDT)
          end if
      else
          sessionLoginDT=formatdatetime(now)
      end if
      '写cookies
      '写sessionLoginDT
      response.cookies("sessionLoginDT")=sessionLoginDT
      response.cookies("sessionLoginDT").expires=date+365
      response.cookies("lastLoginDT")=lastLoginDT
      response.cookies("lastloginDT").expires=date+365
      Session("FirstIn")="yes"
  else
      '刷新,同时说明允许cookie
      Session("FirstIn")="no"
      '读时间
      if not isempty(request.cookies("SessionLoginDT")) then
          sessionLoginDT=request.cookies("SessionLoginDT")
          'sessionlogindt不合法,一般不存在此问题
          if not isdate(sessionLogindt) then
              sessionlogindt=formatdatetime(now)
          else
&n

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

来源:http://www.tulaoshi.com/n/20160129/1509519.html

延伸阅读
标签: Web开发
熟悉Ajax的人应该都知道DWR这个开源框架,它让Ajax程序开发变得简单,但是目前好像只能支持Java,今天就来说一下我在Asp.Net项目中怎样模拟实现DWR的功能: 创建一个接口(姑且叫做IWAjaxEngine),其作用定义对Ajax暴露的方法,我设计的是一个返回string类型的方法,还有一个是没有返回值的方法,两个方法的参数都是Dictionarystring, string类...
标签: Web开发
六)UBB正则表达模板实例 下面是我写的一个UBB函数,这个函数基本上能使你的论坛成为一个优秀的UBB代码论坛了。当然,通过改进后,你可以得到一个更强大的UBB论坛。 Function ReThestr(face,str) dim re,str re="\" str=checkexp(re,str,">") re="\" str=checkexp(re,st...
标签: Web开发
一、读者指引 读者指引帮助你掌握本文的梗概。以免你看了大半才明白这编文章不适合你,给你造成视觉污染。 如果你正在用ASP写程序,或者你正在写一些诸如BBS、留言溥或表单数据检查之类的东东那就值得一看。 如果你对正则表达式已经了如指掌,那么你不必一行行的看,只要看看我写的模板,再比较一下,取其精华就行了...
标签: ASP
       qBoard.asp列出了某个版面下的所有的主题,在点击了主题名称后就会进入相应的主题文章列表。这个列表的是由qTopic.asp这个ASP脚本来实现的。Qtopic.asp的代码在本质上几乎和qBoard.asp没有区别,只是在各自的细节上有所区别,这儿也不打算再多讲了。 在点击了文章列表中的文章标题后,会进入文...
标签: ASP
      现在网上的论坛遍地都是,但可能你对一些论坛的内容感到很厌烦,大家好像都有在论坛上聊天的毛病。往往需要在无数的垃圾中来寻找想要的内容,确实是费时费力,到后来,就都不想去看什么论坛了。 因此,我想能不能对论坛的内容增加审阅功能呢?所有网友发到论坛的文章,并不能够立即被显示出来,必须经...

经验教程

669

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部