在VB腳本中,你不必定義變數或像在其他腳本語言中明確的定義他們的類型。一個變數在你第一次使用的時候存在。但是,這個特性讓你的程式碼廣泛的存在打字稿中。如果你在程式碼中錯誤的定義一個變數名,那麼一個新的變數將會被創建。你的腳本可能無法正常的工作,而你也有可能無法意識到這個錯誤。
%<%Dim IntUserID%>%
IntUserID現在可以使用了。為了另外一個安全網, 使用Option Explicit. 如果你打開Option Explicit, 你將會在使用變數的任何時候發出錯誤的信號。這個聽起來很乏味,但是當你的腳本發生錯誤的時候,他可以給你一些線索,否則你要艱難的找出錯誤出在哪裡。
為了使用Option Explicit, 將下面的內容作為你腳本的第一行內容:
<% Option Explicit %>
如果你想要看看當你忘記定義了變數的時候會發生什麼狀況,可以運行下面這點程式碼:
<% Option Explicit %>
<:% strName = Request.Form("Name") %>
因為strName變數(Dim strName) 沒有被定義,你將會看到發生下面這些錯誤:
Microsoft VBScript runtime error '800a01f4'
Variable is undefined: 'strName'
/e/oe-test.asp, line 10
使用Len
你可以使用Len(string)函數來決定文字的字串的長度:
<%
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是如何手動工作,你可以想想你要求用戶輸入他們的五位數字代碼或三位PIN的形式。使用Len,你效驗是否輸入了足夠的數字。
使用Trim
Trimming 串是你想要在開始就獲得的東西。很多時候,一個串在開始或結束的時候有一個額外的空間,如果你不平衡它,你可能會擔心浪費時間到這些變數上。
<% 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",因為那個是我怎樣將它輸入到形式box中,然後測試兩個變數是否一樣,結果不是,因為"Amy Cowen" 不是" Amy Cowen."
同樣地,如果你將Name輸入到URL中:
<% Response.Write " & objRec("Name") & "">Your Site" %>
如果Name中的記錄的任何部分有額外的空間,你將迅速的執行錯誤問題。
你可以修正一整個串後者在左邊或右邊執行程序:
<% strComments = Request.Form("Comments")
strComments = Trim(strComments)
%>
假定使用者已經輸入::
" I am having problems installing the software I downloaded. "
上面的修整語句將會打散額外的空間,只留下下面的內容:
"
I am having problems installing the software I downloaded."
現在,回到我們的" Amy Cowen" 例子,如果我添加了下面的腳本,我們就會成功:
strName = Trim(strName)
在右邊修整, 使用Rtrim(string). 在左邊修整, 使用Ltrim(string ).
轉換當你開始使用和VB差不多的語言的時候,你會犯一些簡單的錯誤,例如比較整型的512和串512。如果你認識到前一個512和後一個512是不一樣的,你可以想想為什麼給的腳本不能正常工作。
假想一下,你傳送一個檔案的ID到ASP腳本中,使用Request.QueryString,你會確定這個檔案的ID就是使用者想要編輯的。你需要從資料庫中為記錄輸入一些資訊並將它們顯示在螢幕上。資料庫中的ID和整數差不多,特別地,如果你在那個區域使用了AutoNumber效能。你輸入的ID事實上是一個字串。因此,這兩個永遠不可能匹配除非你轉換成相同的類型。
Request.QueryString:
使用FileSystemObject, 你可以測試一個文字—例如, *.html, *.asp, *.inc., *.gif—或目錄的存在。如果檔案存在,你可以想要一連串的時間發生。如果檔案不存在,你可能需要其他的事件發生,使用下面的程式碼: <%
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
%>
為了簡單的測試你這個文件,加腳本到最上面:
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.
改變被輸入的程式碼為一個整數是非常容易的並且可以讓你以後的工作變得容易一點,樣本的格式是這樣的:
<%
dim intUserID intUserID = Request.QueryString("userID")
intUserID = CInt(intUserID)
' intUserID is now an integer.
%>
你同樣也可以註解你的ASP程式碼並使用它們。
註解程式碼
在ASP中,一個腳本在它被傳送到瀏覽器之前就被執行,所以,你不需要使用普通的HTML註解標籤來從舊的瀏覽器隱藏腳本。事實上,你的腳本不會在HTML來源中顯示,因為那個原始碼被瀏覽器交出去了,所以,舊的瀏覽器不會突然的發射任何程式碼到螢幕上。
你可能想要註解來註解你的ASP腳本,在VB腳本中,你可以使用省略符號來記錄註解:
<%
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腳本中使用//來表示註釋
使用包含如果以前你使用過.shtml文件,你可能已經熟悉了包含的工作過程,如果沒有,我們將一步一步告訴你如何使用。
一個包含是容量,它儲存在一個單獨的檔案中。在標準的HTML中,包含通常使用.inc擴充。在ASP中,你使用.asp,.txt或.inc副檔名。接著你將呼叫檔案到HTML程式碼中。當HTML檔案被傳送,包含檔案從特殊檔案中出來並直接寫到螢幕上作為HTML的內容。因此,如果你做一個視圖原始碼,你看到的顯示頁面和你輸入的是一樣的效果。
對於一個普通的HTML來說,當為網站建立一個模版的時候,它會節省很多的時間。頭部,頁腳和導航元素是顯示在你大量頁面中的一部分。當你使用包含的時候,你就要輸入檔案一次並在需要的時候呼叫它。這有幾個優點:
更新內容的時候,你只需要更新一個檔案。
包含meat是從HTML頁面中隔離的,所以任何人想對內容做出修改都可以避免弄亂腳本。
你的核心HTML檔案更小、更實用。
在ASP中,包含是無價的。你可以一遍又一遍的使用腳本,甚至一些時候可以像一個連接串那麼簡單的儲存在包含中,並且,它可以在不可利用的頁面刪除。
為了使用包含文件,你使用這些格式的任一個:
<!-- #INCLUDE FILE="filename.inc" -->
或
<!-- #INCLUDE VIRTUAL="/filename.inc" -->.
文件引用包含使用了相關的路徑。 VIRTUAL引用一個絕對的路徑到相關的伺服器上。如果你想移動目錄和文件,最簡單的方法就是預設使用VIRTUAL,這樣在後來你就不會遇到一些意想不到的錯誤。另外一方面,當你測試文件的時候,你需要利用文件,因為他依靠你如何設定的個人伺服器。
在標準的HTML中,你一般都會給你的包含檔使用.inc字尾。在ASP中,你能使用.asp。這個可以防止你的文件可以輕易的別他人打開並閱讀。