论坛中有新贴子功能的实现
论坛中有新贴子功能的实现,论坛中有新贴子功能的实现
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="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121001073073234.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="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121001073043743.gif" " & _
"< a href=newsdetail.asp?id=" & rsList.Fields("postid") &_
"" & rsList.Fields("Subject") & "< /a < /td "
else
Response.Write "< tr < td bgColor=#f7f7f7 < img src="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121001073068894.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"