ASP編程-20個常用範例
來源:互聯網
上載者:User
編程 1.如何用Asp判斷你的網站的虛擬實體路徑
答:使用Mappath方法
<palign="center"><fontsize="4"face="Arial"><b>
ThePhysicalpathtothisvirtualwebsiteis:
</b></font>
<fontcolor="#FF0000"size="6"face="Arial">
<%=Server.MapPath("\")%>
</font></p>
答:使用theRequestobject方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
IfInstr(strBrowser,"MSIE")<>0Then
Response.redirect("ForMSIEOnly.htm")
Else
Response.redirect("ForAll.htm")
EndIf
答:解決方案
<%startdate=DateDiff("d",Now,"01/01/1990")
ifstrdate<0thenstartdate=startdate*-1
avgvpd=Int((usercnt)/startdate)%>
顯示結果
<%response.write(avgvpd)%>
thatisit.thispagehavebeenviewedsinceNovember10,1998
<%dimp,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
%>
顯示
<imgsrc="<%=dpic%>">
答:<ahref="<%=request.serverVariables("Http_REFERER")%>">preivouspage</a>
或用圖片如:<imgsrc="arrowback.gif"alt="<%=request.serverVariables("HTTP_REFERER")%>">
答:<%=Request.serverVariables("REMOTE_ADDR)%>
答:<%@Languages=vbscript%>
<%response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
%>
答:把這句話放載頁面的開頭
<%response.status="401notAuthorized"
response.end
%>
答:用HIDDEN類型來傳遞變數
<%formmethod="post"action="mynextpage.asp">
<%foreachiteminrequest.form%>
<inputnamee="<%=item%>"type="HIDDEN"
value="<%=server.HTMLEncode(Request.form(item))%>">
<%next%>
</form>
答:由於asp是伺服器啟動並執行,如果可以在伺服器顯示一個對話方塊,那麼你只好等有人按了確定之後,你的程式才能繼續執行,而一般伺服器不會有人守著,所以微軟不得不禁止這個函數,並胡亂告訴你(:)呵呵)沒有許可權。但是ASP和用戶端指令碼結合倒可以顯示一個對話方塊,asfollows:
<%yourVar="測試對話方塊"%>
<%scriptlanguage='javascript'>
alert("<%=yourvar%>")
</script>
答:可以去下載一個微軟的WindowsScriptEncoder,它可以對asp的指令碼和用戶端javascript/vbscript指令碼進行加密。。。不過用戶端加密後,只有ie5才能執行,伺服器端指令碼加密後,只有伺服器上安裝有scriptengine5(裝一個ie5就有了)才能執行。
答:前者檔案加入下句:Response.Redirect("second.asp?"&Request.ServerVariables("QUERY_STRING"))
答:只有web目錄設定為webapplication,global.asa才有效,並且一個webapplication的根目錄下global.asa才有效。IIS4可以使用InternetServiceManager設定applicationsetting怎樣才能使得htm檔案如同asp檔案一樣可以執行指令碼代碼?
答:InternetSevicesManager->選擇defaultwebsite->右鼠鍵->菜單屬性-〉主目錄->應用程式設定(ApplicationSetting)->點擊按鈕"配置"->appmapping->點擊按鈕"Add"->executablebrowse選擇\WINNT\SYSTEM32\INETSRV\ASP.DLLEXTENSION輸入htmmethodexclusions輸入PUT.DELETE全部確定即可。但是值得注意的是這樣對htm也要由asp.dll處理,效率將降低。
答:有兩種方法。
第一種方法:手工註冊DLL這種方法從IIs3.0一直使用到IIs4.0和其它的WebServer。它需要你在命令列方式下來執行,進入到包含有DLL的目錄,並輸入:regsvr32component_name.dll例如c:\temp\regsvr32AspEmail.dll它會把dll的特定資訊註冊入伺服器中的註冊表中。然後這個組件就可以在伺服器上使用了,但是這個方法有一個缺陷。當使用這種方法註冊完畢組件後,該組件必須要相應的設定NT的匿名帳號有許可權執行這個dll。特別是一些組件需要讀取註冊表,所以,這個註冊組件的方法僅僅是使用在伺服器上沒有MTS的情況下,要取消註冊這個dll,使用:regsvr32/uaspobject.dllexamplec:\temp\regsvr32/uaneiodbc.dll
第二種方法:使用MTS(MicrosoftTransactionServer)MTS是IIS4新增特色,但是它提供了巨大的改進。MTS允許你指定只有有特權的使用者才能夠訪問組件,大大提高了網站伺服器上的安全性設定。在MTS上註冊組件的步驟如下:
1)開啟IIS管理主控台。
2)展開transactionserver,按右鍵"pkgsinstalled"然後選擇"newpackage"。
3)單擊"createanemptypackage"。
4)給該包命名。
5)指定administrator帳號或則使用"interactive"(如果伺服器經常是使用administrator登陸的話)。
6)現在使用按右鍵你剛建立的那個包下面展開後的"components"。選擇"newthencomponent"。
7)選擇"installnewcomponent"。
8)找到你的.dll檔案然後選擇next到完成。
要刪除這個對象,只要選擇它的表徵圖,然後選擇delete。
附註:特別要注意第二種方法,它是用來調試自己編寫組件的最好方法,而不必每次都需要重新啟動機器了。
<%@language=VBscript%>
<%
dimconn,mdbfile
mdbfile=server.mappath("資料庫名稱.mdb")
setconn=server.createobject("adodb.connection")
conn.open"driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=資料庫密碼;dbq="&mdbfile
%>
<%@language=VBscript%>
<%
dimconn
setconn=server.createobject("ADODB.connection")
con.open"PROVIDER=SQLOLEDB;DATASOURCE=SQL伺服器名稱或IP地址;UID=sa;PWD=資料庫密碼;DATABASE=資料庫名稱
%>
建立記錄集對象:
setrs=server.createobject("adodb.recordset")
rs.openSQL語句,conn,3,2