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

2016-01-29 19:29 1 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

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

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

延伸阅读
标签: ASP
            UBB的实现原理无外乎字符串的查找和替换。因此Microosft Script Engine 5.0版本的RegExp(正则表达式对象)是个不错的选择,但我想由于ISP的关系,我现在这个网站(信诺立)就还不支持Microsoft Script Engine 5.0。所以下面这个子程序可能更适合大家一些。   □Co...
标签: 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没有区别,只是在各自的细节上有所区别,这儿也不打算再多讲了。 在点击了文章列表中的文章标题后,会进入文...
标签: Web开发
UBB代码对于经常上论坛的朋友来说是最熟悉不过了。这里我不多说了,关于怎么实现UBB转换,不了解的朋友请看这里 正则表达式在UBB论坛中的应用 。 经典论坛的UBB转换我觉得是处理的非常好的,研究了一下它的转换结果[因为没有源码:)],做了下面的演示。转换结果基本上觉得象了。 主要是针对[code]{html}这两个标签的处理,其他的UBB标签...

经验教程

685

收藏

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