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

ASP
在线实时开通FTP&WEB
对文件的操作--建立移动删除文件夹
利用FSO取得BMP,JPG,PNG,GIF文件信息
三种禁用FileSystemObject组件的方法
在线修改Serv-U 4.2用户密码
asp 中常用的文件处理函数
FSO+递归生成文件列表(xml)
文件遍历排序函数
清空iis log 中自己登录ip的vbs
NAV导致IIS调用FSO失败的解决方法
构建免受 FSO 威胁虚拟主机(三)
构建免受 FSO 威胁虚拟主机(二)
构建免受 FSO 威胁虚拟主机(一)
类似于iis浏览的功能
巧用FileSystem组件实现WEB应用中的本地特定打印
ASP中FSO对象对IIS WEB服务器数据安全的威胁及对策
文件的读出 编辑 管理
怎样判断一个盘上是否有文件
用ASP实现对MP3曲目信息的操作
关于用ADO STREAM做的无组件上传程序简单介绍

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 179 ::
收藏到网摘: 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