明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用ASP腳本技術(shù)

[摘要]在VB腳本中,你不必定義變量或者象在其他腳本語(yǔ)言中明確的定義他們的類型。一個(gè)變量在你第一次使用的時(shí)候存在。但是,這個(gè)特性讓你的代碼廣泛的存在打字稿中。如果你在代碼中錯(cuò)誤的定義一個(gè)變量名,那么一個(gè)新的變量將被創(chuàng)建。你的腳本可能不能正常的工作,而你也有可能不能意識(shí)到這個(gè)錯(cuò)誤。在你使用變量的時(shí)候,你要養(yǎng)...

    在VB腳本中,你不必定義變量或者象在其他腳本語(yǔ)言中明確的定義他們的類型。一個(gè)變量在你第一次使用的時(shí)候存在。但是,這個(gè)特性讓你的代碼廣泛的存在打字稿中。如果你在代碼中錯(cuò)誤的定義一個(gè)變量名,那么一個(gè)新的變量將被創(chuàng)建。你的腳本可能不能正常的工作,而你也有可能不能意識(shí)到這個(gè)錯(cuò)誤。


在你使用變量的時(shí)候,你要養(yǎng)成定義他們的習(xí)慣,你所需要做的就是測(cè)試Dim variableName:

%<%Dim IntUserID%>%

IntUserID現(xiàn)在可以使用了。為了另外一個(gè)安全網(wǎng), 使用Option Explicit. 如果你打開Option Explicit, 你將會(huì)在使用變量的任何時(shí)候發(fā)出錯(cuò)誤的信號(hào)。這個(gè)聽起來(lái)很乏味,但是當(dāng)你的腳本發(fā)生錯(cuò)誤的時(shí)候,他可以給你一些線索,否則你要艱難的找出錯(cuò)誤出在哪里。

為了使用Option Explicit, 將下面的內(nèi)容作為你腳本的第一行內(nèi)容:

<% Option Explicit %>

如果你想要看看當(dāng)你忘記定義了變量的時(shí)候會(huì)發(fā)生什么狀況,可以運(yùn)行下面這點(diǎn)代碼:

<% Option Explicit %>
<:% strName = Request.Form("Name") %>

因?yàn)閟trName變量 (Dim strName) 沒(méi)有被定義,你將會(huì)看到發(fā)生下面這些錯(cuò)誤:

Microsoft VBScript runtime error '800a01f4'
Variable is undefined: 'strName'
/e/oe-test.asp, line 10

使用Len
 你可以使用Len(string)函數(shù)來(lái)確定文本的串的長(zhǎng)度:

<%
IntString = "This is a Simple Sentence."
IntStringLength = Len(IntString)
Response.Write "There are " & IntStringLength & " characters (including spaces) in the sentence shown below:"
Response.Write "" & IntString & ""
%>

如果你想知道Len是如何手動(dòng)工作,你可以想想你要求用戶輸入他們的五位數(shù)字代碼或者三位PIN的形式。使用Len,你效驗(yàn)是否輸入了足夠的數(shù)字。

使用Trim
Trimming 串是你想要在開始就獲得的東西。很多時(shí)候,一個(gè)串在開始或者結(jié)束的時(shí)候有一個(gè)額外的空間,如果你不平衡它,你可能會(huì)擔(dān)心浪費(fèi)時(shí)間到這些變量上。

<% strName = Request.Form("Name")
strCheckName = "Amy Cowen"
If strName = strCheckName THEN
Response.Write "Success! The names matched."
Else
Response.Write "Sorry. The names do not match."
End if
%>

如果strName的值是 " Amy Cowen",因?yàn)槟莻(gè)是我怎樣將它輸入到形式box中,然后測(cè)試兩個(gè)變量是否一樣,結(jié)果不是,因?yàn)?"Amy Cowen" 不是" Amy Cowen."

同樣地,如果你將Name輸入到URL中:

<% Response.Write " & objRec("Name") & "">Your Site" %>

如果Name中的記錄的任何部分有額外的空間,你將迅速的執(zhí)行錯(cuò)誤問(wèn)題。

你可以修正一整個(gè)串后者在左邊或者右邊執(zhí)行進(jìn)程:

<% strComments = Request.Form("Comments")
strComments = Trim(strComments)
%>

假定用戶已經(jīng)輸入::

" I am having problems installing the software I downloaded. "

上面的修整語(yǔ)句將會(huì)打散額外的空間,只留下下面的內(nèi)容:

"I am having problems installing the software I downloaded."

現(xiàn)在,回到我們的 " Amy Cowen" 例子,如果我添加了下面的腳本,我們就會(huì)成功:

strName = Trim(strName)

在右邊修整, 使用Rtrim(string). 在左邊修整, 使用Ltrim(string).

轉(zhuǎn)換
當(dāng)你開始使用和VB差不多的語(yǔ)言的時(shí)候,你會(huì)犯一些簡(jiǎn)單的錯(cuò)誤,比如比較整型的512和串512。如果你認(rèn)識(shí)到前一個(gè)512和后一個(gè)512是不一樣的,你可以想想為什么給出的腳本不能正常工作。


假想一下,你傳送一個(gè)文件的ID到ASP腳本中,使用Request.QueryString,你會(huì)確定這個(gè)文件的ID就是用戶想要編輯的。你需要從數(shù)據(jù)庫(kù)中為記錄輸入一些信息并將它們顯示在屏幕上。數(shù)據(jù)庫(kù)中的ID和整型差不多,特別地,如果你在那個(gè)區(qū)域使用了AutoNumber性能。你輸入的ID事實(shí)上是一個(gè)串。因此,這兩個(gè)永遠(yuǎn)不可能匹配除非你轉(zhuǎn)換成相同的類型。

Request.QueryString:
使用FileSystemObject, 你可以測(cè)試一個(gè)文本—比如, *.html, *.asp, *.inc., *.gif—或者目錄的存在。如果文件存在,你可以想要一連串的時(shí)間發(fā)生。如果文件不存在,你可能需要其他的事件發(fā)生,使用下面的代碼: <%
    sPath="/profiles/" & strFileName & ".asp"
    sFile=Server.MapPath(sPath)
    Set fe=Server.CreateObject("Scripting.FileSystemObject")
    if fe.FileExists(sFile) THEN
      'do something
      Response.Write "Yeah! I found it!."
      Response.Write "You can access that file by "
      Response.Write "<A HREF=""" & sPath & """>Clicking Here</A>."
    else
      'do something
      Response.Write "Sorry. The requested file does not exist."
    end if
%>

為了簡(jiǎn)單的測(cè)試你這個(gè)文件,添加腳本到最上面:

    strFileName = "name"
    ' First assign the name of a file you have to this variable.
' strFileName holds just the name, not the extension or the path.
    ' Make sure you change the path for sPath to the virtual directory your file is in
    ' Run the script.
    ' Then come back and change the strFileName variable to the name of a file
    ' you do NOT have.
  ' Run the script.

改變被輸入的代碼為一個(gè)整型是非常容易的并且可以讓你以后的工作變得容易一點(diǎn),樣本的格式是這樣的:

<%
dim intUserID intUserID = Request.QueryString("userID")
intUserID = CInt(intUserID)
' intUserID is now an integer.
%>

你同樣也可以注釋你的ASP代碼并使用它們。

注釋代碼
  在ASP中,一個(gè)腳本在它被發(fā)送到瀏覽器之前就被執(zhí)行,所以,你不需要使用普通的HTML注釋標(biāo)簽來(lái)從舊的瀏覽器隱藏腳本。事實(shí)上,你的腳本不會(huì)在HTML源中顯示,因?yàn)槟莻(gè)源代碼被瀏覽器交出去了,所以,舊的瀏覽器不會(huì)突然的發(fā)射任何代碼到屏幕上。

你可能想要注釋來(lái)注釋你的ASP腳本,在VB腳本中,你可以使用省略符來(lái)記錄注釋:

<%
currentdate = now

' make sure you use quotation marks around the HTML code
' the & serves to concatenate the string

Response.Write "Today is: " & currentdate & "<BR>"

%>

在ASP腳本中使用//來(lái)表示注釋

使用包含
如果以前你使用過(guò).shtml文件,你可能已經(jīng)熟悉了包含的工作過(guò)程,如果沒(méi)有,我們將一步一步告訴你如何使用。


   一個(gè)包含是容量,它存儲(chǔ)在一個(gè)單獨(dú)的文件中。在標(biāo)準(zhǔn)的HTML中,包含通常使用.inc擴(kuò)展。在ASP中,你使用.asp,.txt或者.inc擴(kuò)展名。接著你將調(diào)用文件到HTML代碼中。當(dāng)HTML文件被發(fā)送,包含文件從特殊文件中出來(lái)并直接寫到屏幕上作為HTML的內(nèi)容。因此,如果你做一個(gè)視圖源代碼,你看到的顯示頁(yè)面和你輸入的是一樣的效果。

對(duì)于一個(gè)普通的HTML來(lái)說(shuō),當(dāng)為站點(diǎn)創(chuàng)建一個(gè)模版的時(shí)候,它會(huì)節(jié)省很多的時(shí)間。頭部,頁(yè)腳和導(dǎo)航元素是顯示在你大量頁(yè)面中的一部分。當(dāng)你使用包含的時(shí)候,你就要輸入文件一次并在需要的時(shí)候調(diào)用它。這有幾個(gè)優(yōu)點(diǎn):

更新內(nèi)容的時(shí)候,你只需要更新一個(gè)文件。
包含meat是從HTML頁(yè)面中隔離的,所以任何人想對(duì)內(nèi)容做出修改都可以避免弄亂腳本。
你的核心HTML文件更小和更實(shí)用。
在ASP中,包含是無(wú)價(jià)的。你可以一遍又一遍的使用腳本,甚至一些時(shí)候可以象一個(gè)連接串那么簡(jiǎn)單的存儲(chǔ)在包含中,并且,它可以在不可利用的頁(yè)面刪除。

為了使用包含文件,你使用這些格式的任意一個(gè):

<!-- #INCLUDE FILE="filename.inc" -->

或者

<!-- #INCLUDE VIRTUAL="/filename.inc" -->.

  文件引用包含使用了相關(guān)的路徑。VIRTUAL引用一個(gè)絕對(duì)的路徑到相關(guān)的服務(wù)器上。如果你想移動(dòng)目錄和文件,最簡(jiǎn)單的方法就是默認(rèn)使用VIRTUAL,這樣在后來(lái)你就不會(huì)遇到一些意想不到的錯(cuò)誤。另外一方面,當(dāng)你測(cè)試文件的時(shí)候,你需要利用文件,因?yàn)樗揽磕闳绾卧O(shè)置的個(gè)人服務(wù)器。

  在標(biāo)準(zhǔn)的HTML中,你一般都給你的包含文件使用.inc后綴。在ASP中,你能使用.asp。這個(gè)可以防止你的文件可以輕易的別他人打開并閱讀。