当前位置: 首页 > 图文教程 > 网络编程 > ASP > ubb风格论坛中自您上次来后有新的贴子的功能的asp实现

ASP
TSYS 新闻列表JS调用下载
使用asp代码突破图片的防盗连
一种理论上最快的Web数据库分页方法
asp:debug类调试程序
如何增加Referer功能--反向链接插件
pjblog中清空引用的小程序
光碟工具 Alcohol 120% v1.9.6.4719 下载(附序列号注册码)
ASP实现头像图像随机变换
UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序
[转]XMLHTTPRequest的属性和方法简介
ASP常用函数:getpy()
我用ASP写的m行n列的函数,动态输出创建TABLE行列
ASP常用函数:Delay()
ASP常用函数:Trace()
[转]ASP实现关键词获取(各搜索引擎,GB2312及UTF-8)
对象标记具有无效的 ''MSWC.MyInfo'' ProgID
ServerVariables集合检索预定的环境变量
HTTP_HOST 和 SERVER_NAME 的区别详解
[转]ASP常用函数:TimeZone
Eval 函数 | Execute 语句 | ExecuteGlobal 语句

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 178 ::
收藏到网摘: n/a

      
  
  关键词: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 "<tr><td bgColor=#f7f7f7><img
  src="/upload/tech/20091103/20091103094806_7ef605fc8dba5425d6965fbd4c8fbe1f.gif" > <a href=newsdetail.asp?id=" & rsList.Fields
  ("postid") & ">" & rsList.Fields("Subject") & "</a> </td>"
  else
   'Lastly为主题的post时间
   if rsList.Fields("Lastly")>sessionLoginDT then
  
  
   Response.Write "<tr><td bgColor=#f7f7f7><img
  src="/upload/tech/20091103/20091103094806_fe131d7f5a6b38b23cc967316c13dae2.gif"> <a href=newsdetail.asp?id=" & rsList.Fields
  ("postid") & ">" & rsList.Fields("Subject") & "</a> </td>"
   else
   Response.Write "<tr><td bgColor=#f7f7f7><img
  src="/upload/tech/20091103/20091103094807_2723d092b63885e0d7c260cc007e8b9d.gif" > <a href=newsdetail.asp?id=" & rsList.Fields
  ("postid") & ">" & rsList.Fields("Subject") & "</a> </td>"
   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