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

ASP
超级ASP版DataGrid:SkyGrid本地下载
用QuickWAP组件结合ASP建设Wap站点
ASP中取得图片宽度和高度的类(无组件)
在ASP处理程序时显示进度
结合FSO操作和Aspjpeg组件写的Class
asp实现的7xi音乐网的采集源代码
用asp+xmlhttp编写web采集程序
推荐ASP超速入门视频教程
关于“未指定的错误”的问题 的比较正解的解决方法
用asp脚本实现限制IP访问
aspupload 3.0 下载与使用集锦
[教程+分享]具有良好体验度的Web注册系统
asp 实现视频显示的效果函数
asp实现图片右键滑轮控制大小的函数
彻底掌握ASP分页技术杂谈
aspupload文件重命名及上传进度条的解决方法附代码
ASPJPEG综合操作的CLASS类
asp通用采集函数冗余版可以保存文件到本地
使用ODBC数据库管理Serv-U的FTP用户及相关ASP编程[附源码示例下载]
[asp]阿里西西的alexa采集效果代码

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


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