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

ASP
ASP技巧:在Access数据库中重命名表
用ASP编程实现网络内容快速查找
比较ASP生成静态HTML文件的几种方法
ASP实例:实现邮件发送普通附件和嵌入附件
如何用ASP实现去掉三个最高分和三个最低分
ASP实例:Access为后台数据库的网站统计系统
用标签替换的方法生成静态网页
例程:用ASP判断文件地址是否有效
学ASp动态网页必备:常用的38个函数
ASP教程:初次接触学习ASP脚本程序
ASPJPEG水印中关于文字水印的帮助文档(中英文对照)
ASP例子:ASP把汉字转化为拼音的函数
ASP教程:学习ASP应用Cookies的技巧
ASP入门:认识ASP程序所使用的几种脚本语言
初学者的ASP教程:常用ASP内置函数
ASP初级教程之ASP对表单和用户输入的处理
学习ASP文件引用的方法
用ASP编写更人性化的弹出窗口程序
谈谈学习ASP动态网页制作技术的编程心得
用ASP程序实现网站在线人数统计

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


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