飘灵儿 发表于 2015-1-16 22:30:02

ASP网站制作之论坛中有新贴子功能的完成

缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全这是最近用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-保留本次登录的工夫

道理:
  取前次登录工夫为本此会话工夫,并将此工夫同会商区最初一个贴子的工夫或某一会商区各主题的最初工夫对照,依据实践情形选择得当的图形,如:

ifrsList.Fields("status")="close"then
主题封闭
Response.Write"<tr><tdbgColor=#f7f7f7>"&_
"<ahref=newsdetail.asp?id="&rsList.Fields("postid")&_
">"&rsList.Fields("Subject")&"</a></td>"
else
Response.Write"<tr><tdbgColor=#f7f7f7><imgsrc=http://edu.cnzz.cn/NewsInfo/images/closed.gif>"&_
"<ahref=newsdetail.asp?id="&rsList.Fields("postid")&_
">"&rsList.Fields("Subject")&"</a></td>"
endif
endif

页面:会商区列表(default.asp)
代码片断:

ifisempty(Session("FirstIn"))then
第一次进进或不同意利用Cookie
取前次会见工夫并赋值给sessionLoginDT
ifnotisempty(request.cookies("lastLoginDT"))then
sessionLoginDT=request.cookies("lastLoginDT")
ifnotisdate(sessionLogindt)then
sessionlogindt=formatdatetime(now)
else
sessionLoginDT=cdate(sessionLoginDT)
endif
else
sessionLoginDT=formatdatetime(now)
endif
写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"
读工夫
ifnotisempty(request.cookies("SessionLoginDT"))then
sessionLoginDT=request.cookies("SessionLoginDT")
sessionlogindt分歧法,一样平常不存在此成绩
ifnotisdate(sessionLogindt)then
sessionlogindt=formatdatetime(now)
else
sessionLoginDT=cdate(sessionLoginDT)
endif
else
没有sessionlogindtcookie,一样平常不存在此成绩
sessionLoginDT=formatdatetime(now)
写sessionLoginDT
response.cookies("sessionLoginDT")=sessionLoginDT
response.cookies("sessionLoginDT").expires=date+365
endif
endif

页面:某会商区贴子列表:(List.asp)
代码举例:

dimsessionLoginDT
ifnotisempty(request.cookies("sessionLoginDT"))then
sessionLoginDT=request.cookies("sessionLoginDT")
ifnotisdate(sessionLoginDT)then
sessionlogindt=formatdatetime(now)
else
sessionLoginDT=cdate(sessionLoginDT)
endif
else
不存在此cookie,一样平常不存在此成绩
sessionLoginDT=formatdatetime(now)
写Cookie
response.cookies("sessionLoginDT")=sessionLoginDT
response.cookies("sessionLoginDT").expires=date+365
endif
对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。

只想知道 发表于 2015-1-19 15:30:53

不能只是将它停留在纸上谈兵的程度上。

第二个灵魂 发表于 2015-1-25 21:00:02

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

深爱那片海 发表于 2015-2-4 01:42:46

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

分手快乐 发表于 2015-2-9 09:24:11

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

飘飘悠悠 发表于 2015-2-27 05:18:06

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

金色的骷髅 发表于 2015-3-8 22:14:07

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

再见西城 发表于 2015-3-16 15:59:27

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

不帅 发表于 2015-3-22 23:31:15

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
页: [1]
查看完整版本: ASP网站制作之论坛中有新贴子功效的完成