|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!然后你就能够用任何体例来利用这些数据了。你能够创立ASP页面来读取数据并将数据出现给办理员,大概从数据库中将其复制到一个电子事情表中,偶然间的时分再举行剖析。
可是要记着,利用ASPsessions会带来一些成绩。在ASP2.0中,当主使用程序目次下的嵌套目次中有global.asa的正本时,偶然sessions会丧失。另有,假如你在URL、页面文件名和页面之间的超等链接中利用字母的巨细写分歧的话,象Navigator那样的扫瞄器就把URL作为巨细写敏感来看待,因而不把特别的ASPsessioncookie发送返来,如许这类
办法的利用也是不成靠的。
“客户机端Cookie”手艺
利用客户机端Cookie也很简单。完成这一事情的代码能够放在一个ASP#include文件中,然后将它拔出到站点顶用户一定会往会见的主页面中。固然,假如乐意的话能够将其拔出一切的页面。只需在用户会见的过程当中它事情一般,就可以给出准确的了局。
设置了路径和日记文件名以后,代码界说一个子程序,将一个值附加到日记文件的,就象后面的“ASPSessions”的例子一样。假如你乐意的话,能够代替我们利用的代码来更新一个数据库表而不是一个日记文件。
<%
measurevisitlengthwithcookie
setpathandnameoflogfiletobecreated
edittosuityourownmachinedirectorylayout
remembertogivethedirectoryWriteorFull
ControlpermissionfortheIUSR_machineaccount
strFileName="C:Tempvisit_lengths.txt"
SubUpdateLogFile(intVisitLength)
OnErrorResumeNext
IfintVisitLength>0Then
gotavalidtimesoenteritintoalogfile
strInfo="Sessionendingat"&Now()_
&"lastedfor"&CStr(intVisitLength)&"minute(s)."
addusernametothelogentrystringhereifrequired
strInfo=strInfo&"Username:"&strUserName
SetobjFileObject=Server.CreateObject("Scripting.FileSystemObject")
opentextfiletoappenddata(theForAppendingconstant=8)
SetobjFile=objFileObject.OpenTextFile(strFileName,8,True)
objFile.WriteLinestrInfo
objFile.Close
SetobjFile=Nothing
SetobjFileObject=Nothing
EndIf
EndSub
读一个存在的Cookie
如今我们能够举行本色性的事情了。代码的其他部分反省是不是有一个现存的Cookie供这个用户利用,假如有的话就确认它包括无效的日期和工夫(我们反省它必需是一个1990年以后的日期)。假如cookie是无效的,它随后反省自从这个用户装载最初一页(也就是他们实行这个代码的最初一次)是不是已过了30分钟以上。假如已凌驾了30分钟,我们就把它举动当作一个新的会见,你能够依据你的站点和需求来修正这个值。
...
getsessionstarttimefromexistingcookieifitexists
datStart=CDate(Request.Cookies("SiteVisits")("StartTime"))
IfYear(datStart)>1990Then
cookiealreadyexists,sogetvalues
datLast=CDate(Request.Cookies("SiteVisits")("LastTime"))
If(DateDiff("n",datLast,Now())>30)Then
morethan30minutessincelastvisitsocountasnewvisit
getlengthoflastvisitandupdatelogfile
intMinutes=DateDiff("n",datStart,datLast)
UpdateLogFileintMinutes
...
这时候,经由过程在页面的顶端实行UpdateLogFile子程序,我们已存储了他们上一次会见的长度,这是他们前次会见的分钟数。然后就能够把我们搜集的两个值更新成以后的日期和工夫,能够入手下手纪录此次会见的长度了。
要注重,30分钟已往以后才干看到表格中的任何条目。在实验时,你能够用一个较短的值来修正代码。
纪录会见的工夫长度
...
updatevaluesforcookie
usenewstarttimeandnewlastpageloadtime
datStart=Now()
datLast=Now()
Else
...
假如自从最初一次实行这个代码的工夫少于30分钟,我们把它算成是以后会见的一部分,因而我们只必要更新cookie中的值作为他们前次会见的工夫:
...
lessthan30minutessincelastvisitsocountasthesamevisit
updatevaluesforcookie-justchangethelastpageloadtime
datLast=Now()
EndIf
Else
...
设置默许值
这里的代码只是在我们没有从会见者那边失掉一个无效的cookie时才会实行,因而我们所能做的就是利用一个以后日期和工夫的新cookie来失掉最初一次会见的入手下手和最初的数值:
...
validcookiedoesnotexistsosetvaluesforanewone
datStart=Now()
datLast=Now()
EndIf
...
创立前往Cookie值
如今,我们已触及到了cookie中现存值的一切大概的情形,而且我们把新的cookie值存储在datStart和datLast变量中。如许我们就能够创立发送回这个会见者的cookie了。注重,每次我们都要从头创立全部cookie,由于当试图修正个中一个值而更新cookie时,会损坏别的的一切现存值:
...
createcookietosendbacktoclient
havetorecreatewholecookie-cantjustchangesomevalues
Response.Cookies("SiteVisits")("StartTime")=datStart
Response.Cookies("SiteVisits")("LastTime")=datLast
Response.Cookies("SiteVisits").path="/"applytoentiresite
makeitstayontheuserssystemforthreemonths
Response.Cookies("SiteVisits").expires=DateAdd("m",3,Now)
%>
cookie手艺的一个成绩是当会见者从头回到你的站点时,你只能丈量他前次会见的长度。为此,我们同意cookie在他们的呆板上存在3个月,你能够修正这个工夫值来顺应你的需求。
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了, |
|