当前位置: 首页 > 图文教程 > 网络编程 > ASP > 论坛中有新贴子功能的实现

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

ASP 中的 论坛中有新贴子功能的实现


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

    这是近来用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/20091103101735_76dc611d6ebaafc66cc0879c71b5db5c.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/20091103101735_170c944978496731ba71f34c25826a34.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/20091103101736_e00da03b685a0dd18fb6a08af0923de0.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"