直播中
%<%Dim IntUserID%>%
IntUserID現(xiàn)在可以使用了。為了另外一個(gè)安全網(wǎng), 使用Option Explicit. 如果你打開Option Explicit, 你將會(huì)在使用變量的任何時(shí)候發(fā)出錯(cuò)誤的信號(hào)。這個(gè)聽(tīng)起來(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è)可以防止你的文件可以輕易的別他人打開并閱讀。