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

ASP
ASP 编程中20个非常有用的例子(一)
ASP 编程中20个非常有用的例子(二)
ASP基础教程:ADO存取数据库时如何分页显示
ASP基础教程:其它的ASP常用组件
ASP基础教程:学习ASP中子程序的应用
ASP基础教程之ASP程序对Cookie的处理
ASP基础教程之实例学习ASP Response 对象
ASP基础教程之ASP AdRotator 组件的使用
ADO初学者教程:ADO 通过GetString()加速脚本
初学者来认识OLEDB和ODBC的区别
ASP常见数学函数 Abs Atn Cos 等详细详解
VBScript新手入门初学教程:VBScript简介
有用的无声递交表单的客户端函数
Windows 2003 安装设置iis
ASP技巧实例:几行代码解决防止表单重复提交
ASP读sql数据时出现乱码问题的解决方法
ASP技巧实例:使用ASP记录在线用户的数量
ASP技巧实例:关于对表单操作的程序
ASP技巧实例:ASP实现最简洁的多重查询的解决方案
ASP实例:利用缓存提高数据显示效率

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


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