|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。计数器|计划|详解 ActiveServerPager(静态服务器主页,简称ASP),经由过程读写服务器的文件,分离script言语(VBscript或Jscript)和html码能够便利地完成页面计数器功效。现盛行的ASP课本和收集上的ASP教程都谈到过ASP计数器的计划成绩,可是都过于复杂,好比没有提到如何完成计数器剧本和主页面的分别和图像计数器的完成等。上面就作者为单元制造NTweb站点的履历,举实例循规蹈矩谈谈关于ASP计数器的计划,但愿能给ASP的初学者和对ASPWEB编程有乐趣的网友一些启示。
(一)复杂的计数器
ASP内含五个内置的"ActiveServerComponents"(ActiveX服务器组件),即DatabaseAccesscomponent(数据库会见组件)、FileAccesscomponent(文件会见组件)、AdRotatorcomponent(告白轮播器组件)、BrowerCapabilitiescomponent(扫瞄器信息组件)、ContentLinkingcomponent(内容链接组件)。我们上面要计划的计数器,就是经由过程个中的FileAccesscomponent(文件会见组件)来读写服务器文件来完成。算法思绪是:在服务器端用一个文本(ASCII)文件寄存计数数值,每当页面被会见时就从文件中读出数值,显现给用户,而且使数值加1,把增添后的数值写回到文件。
写进数据到一个服务器计数文件的ASP语句和申明以下:
CounFile=Server.MapPath("用来寄存计数器值的文件名")
Server服务器会见办法MapPath(path)是将寄存计数器值的文件地点的路径转换成物理路径
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
利用办法CreateObject界说工具FileSystemObject
SETOutStream=Server.CreateTextFile(FileObject,True,False)
利用工具FileSystemObject供应办法CreateTextFile发生文本文件,个中参数"True"暗示掩盖本来的文件,"False"暗示文件为ASCII范例
OutStream.WriteLine"要写进的数据"
OutStream.WriteLine为往文件写进一行数据
从一个服务器文件读取数据的ASP语法以下:
CounFile=Server.MapPath("用来寄存计数器值的文件名")
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SETInStream=Server.OpenTextFile(FileObject,1,false,false)
利用工具FileSystemObject供应办法OpenTextFile发生文本文件,
个中参数"True"暗示掩盖本来的文件,"False"暗示文件为ASCII范例
"要读取的数据"=InStream.ReadLine
个中InStream.ReadLine为从文件中读取的一行数据
上面是一个用ASP完成页面计数器功效的计数器例子(simplecounter.asp),我在代码中具体正文了语句。你能够把以下代码粘贴到你必要计数的页面代码中。固然,你的服务器必需撑持ASP,且你已在主页地点的目次下创立了一个内容为0的文本文件simplecounter.txt。
复杂的ASP计数器simplecounter.asp代码及正文:
<%
CountFile=Server.MapPath("simplecounter.txt")
文件aspconter.txt是用来贮存数字的文本文件,初始内容通常为0
SetFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
读取计数器文件中的值
Out.Close
封闭文件
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
办法Application.lock克制其余用户变动计数器的值
counter=counter+1
计数器的值增添1
Out.WriteLine(counter)
把新的计数器值写进文件
Application.unlock
利用办法Application.unlock后,同意其余用户变动计数器的值
Response.Write("您是第")
Response.Write("<fontcolor=red>")
Response.Write(counter)
把计数器的值传送到扫瞄器,以红(red)色显现给用户
Response.Write("</font>")
Response.Write("位会见者")
Out.Close
封闭文件
%>
(二)与页面分别的计数器
实践使用中,主页面与计数器程序是分别的,既只需在必要计数的页面中到场一句援用代码就能够完成页面计数。我们在网上常常请求利用的收费计数器就是如许,不外它们通常为CGI做的。这里,我们只需略微修正一下后面我们用ASP做的复杂计数器,然后在页面到场一句JavaScript语句援用它,就完成了与页面分别的计数器功效。如许,不管是作为主页面的计数器仍是为某个特定页面的计数,都很便利了。明显,你必要复杂变动一下寄存计数器值的文件名和计数器asp源代码文件名就能够完成多个计数器。
与页面分别的计数器txtcounter.asp代码:
<%
CountFile=Server.MapPath("txtcounter.txt")
SetFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SETFileObject=Server.CreateObject("Scripting.FileSystemObject")
SetOut=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter=counter+1
Out.WriteLine(counter)
Application.unlock
Response.Write"document.write("&counter&")"
为了在页面准确显现计数器的值,挪用VBScript函数Document.write
Out.Close
%>
在要计数的页面到场以下的代码:
<p>
您是第
<fontcolor=red>
<scriptlanguage="JavaScript"src="http://202.101.209.75/asptemp/counter/txtcounter.asp";>
//援用时注重ASP计数器地点的服务器及目次路径。
</script>
</font>
位来客
</p>ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失; |
|