ASP常用代碼剪輯_ASP教程
推薦:用Asp隱藏文件路徑,實(shí)現(xiàn)防盜鏈如果我們知道一個(gè)靜態(tài)文件的實(shí)際路徑如:http://www.xx.com/download/51windows.pdf,如果服務(wù)器沒(méi)有作特別的限制設(shè)置,我們就可以毫不費(fèi)力的把它下載下來(lái)!當(dāng)網(wǎng)站提供51windows.pdf下載時(shí),怎
計(jì)算字符的大小
len()是一個(gè)字算一個(gè),一個(gè)字母也一個(gè)
lenb()是字母和字都是兩個(gè)
| 以下為引用的內(nèi)容: function getlen(str) n=0 for i=1 to len(str) charasc=asc(mid(str,i,1)) if ((charasc<127) and (charasc>=32)) then n=n 1 else n=n 2 next getlen=n end function |
1、如何用Asp判斷你的網(wǎng)站的虛擬物理路徑
答:使用Mappath方法
| 以下為引用的內(nèi)容: < p align="center" >< font size="4" face="Arial" >< b > The Physical path to this virtual website is: < /b >< /font > < font color="#FF0000" size="6" face="Arial" > < %= Server.MapPath("\")% > < /font >< /p > |
2、我如何知道使用者所用的瀏覽器?
答:使用the Request object方法
| 以下為引用的內(nèi)容: strBrowser=Request.ServerVariables("HTTP_USER_AGENT") If Instr(strBrowser,"MSIE") < > 0 Then Response.redirect("ForMSIEOnly.htm") Else Response.redirect("ForAll.htm") End If |
3、如何計(jì)算每天的平均反復(fù)訪問(wèn)人數(shù)
答:解決方法
| 以下為引用的內(nèi)容: < % startdate=DateDiff("d",Now,"01/01/1990") if strdate< 0 then startdate=startdate*-1 avgvpd=Int((usercnt)/startdate) % > |
顯示結(jié)果
| 以下為引用的內(nèi)容: < % response.write(avgvpd) % > that is it.this page have been viewed since November 10,1998 |
4、如何顯示隨機(jī)圖象
| 以下為引用的內(nèi)容: < % dim p,ppic,dpic 顯示 < img src="< %=dpic% >" > |
5、如何回到先前的頁(yè)面
| 以下為引用的內(nèi)容: 答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a > |
或用圖片如:< img src="arrowback.gif" alt="< %=request.
serverVariables("HTTP_REFERER")% >" >
6、如何確定對(duì)方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >
7、如何鏈結(jié)到一副圖片上
| 以下為引用的內(nèi)容: 答:< % @Languages=vbscript % > < % response.expires=0 strimagename="graphix/errors/erroriamge.gif" response.redirect(strimagename) % > |
8、強(qiáng)迫輸入密碼對(duì)話框
答:把這句話放載頁(yè)面的開(kāi)頭
| 以下為引用的內(nèi)容: < % response.status="401 not Authorized" response.end % > |
9、如何傳遞變量從一頁(yè)到另一頁(yè)
答:用 HIDDEN 類型來(lái)傳遞變量
| 以下為引用的內(nèi)容: < % form method="post" action="mynextpage.asp" > < % for each item in request.form % > < input namee="< %=item% >" type="HIDDEN" value="< %=server.HTMLEncode(Request.form(item)) % >" > < % next % > < /form > |
10、為何我在 asp 程序內(nèi)使用 msgbox,程序出錯(cuò)說(shuō)沒(méi)有權(quán)限
答:由于 asp 是服務(wù)器運(yùn)行的,如果可以在服務(wù)器顯示一個(gè)對(duì)話框,那么你只好等有人按了確定之后,你的程序才能繼續(xù)執(zhí)行,而一般服務(wù)器不會(huì)有人守著,所以微軟不得不禁止這個(gè)函數(shù),并胡亂告訴你 (:) 呵呵) 沒(méi)有權(quán)限。但是ASP和客戶端腳本結(jié)合倒可以顯示一個(gè)對(duì)話框,
| 以下為引用的內(nèi)容: as follows: < % yourVar="測(cè)試對(duì)話框"% > < % script language='javascript' > alert("< %=yourvar% >") < /script > |
11、有沒(méi)有辦法保護(hù)自己的源代碼,不給人看到
答:可以去下載一個(gè)微軟的Windows Script Encoder,它可以對(duì)asp的腳本和客戶端javascript/vbscript腳本進(jìn)行加密。。。不過(guò)客戶端加密后,只有ie5才能執(zhí)行,服務(wù)器端腳本加密后,只有服務(wù)器上安裝有script engine 5(裝一個(gè)ie5就有了)才能執(zhí)行。
12、怎樣才能將 query string 從一個(gè) asp 文件傳送到另一個(gè)?
答:前者文件加入下句:
| 以下為引用的內(nèi)容: Response.Redirect("second.asp?" & Request. ServerVariables("QUERY_STRING")) |
13、global.asa文件總是不起作用?
答:只有web目錄設(shè)置為web application, global.asa才有效,并且一個(gè)web application的根目錄下 global.asa才有效。IIS4可以使用Internet Service Manager設(shè)置application setting 怎樣才能使得htm文件如同asp文件一樣可以執(zhí)行腳本代碼?
14、怎樣才能使得htm文件如同asp文件一樣可以執(zhí)行腳本代碼?
答:Internet Sevices Manager - > 選擇default web site - >右鼠鍵- >菜單屬性-〉主目錄- > 應(yīng)用程序設(shè)置(Application Setting)- > 點(diǎn)擊按鈕 "配置"- > app mapping - >點(diǎn)擊按鈕"Add" - > executable browse選擇\WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 輸入 htm method exclusions 輸入PUT.DELETE 全部確定即可。但是值得注意的是這樣對(duì)htm也要由asp.dll處理,效率將降低。
15、如何注冊(cè)組件
答:有兩種方法。
第一種方法:手工注冊(cè) DLL 這種方法從IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下來(lái)執(zhí)行,進(jìn)入到包含有DLL的目錄,并輸入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它會(huì)把dll的特定信息注冊(cè)入服務(wù)器中的注冊(cè)表中。然后這個(gè)組件就可以在服務(wù)器上使用了,但是這個(gè)方法有一個(gè)缺陷。當(dāng)使用這種方法注冊(cè)完畢組件后,該組件必須要相應(yīng)的設(shè)置NT的匿名帳號(hào)有權(quán)限執(zhí)行這個(gè)dll。特別是一些組件需要讀取注冊(cè)表,所以,這個(gè)注冊(cè)組件的方法僅僅是使用在服務(wù)器上沒(méi)有MTS的情況下,要取消注冊(cè)這個(gè)dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /uaneiodbc.dll
第二種方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改進(jìn)。MTS允許你指定只有有特權(quán)的用戶才能夠訪問(wèn)組件,大大提高了網(wǎng)站服務(wù)器上的安全性設(shè)置。在MTS上注冊(cè)組件的步驟如下:
1) 打開(kāi)IIS管理控制臺(tái)。
2) 展開(kāi)transaction server,右鍵單擊"pkgs installed"然后選擇"newpackage"。
3) 單擊"create an empty package"。
4) 給該包命名。
5) 指定administrator帳號(hào)或則使用"interactive"(如果服務(wù)器經(jīng)常是使用administrator 登陸的話)。
6) 現(xiàn)在使用右鍵單擊你剛建立的那個(gè)包下面展開(kāi)后的"components"。選擇"new then component"。
7) 選擇 "install new component" [b]。
8) 找到你的.dll文件然后選擇next到完成。
要?jiǎng)h除這個(gè)對(duì)象,只要選擇它的圖標(biāo),然后選擇delete。
附注:特別要注意第二種方法,它是用來(lái)調(diào)試自己編寫(xiě)組件的最好方法,而不必每次都需要重新啟動(dòng)機(jī)器了。
16、ASP與Access數(shù)據(jù)庫(kù)連接:
| 以下為引用的內(nèi)容: <%@ language=VBscript%> 據(jù)庫(kù)密碼;dbq="&mdbfile %> |
17、ASP與SQL數(shù)據(jù)庫(kù)連接:
| 以下為引用的內(nèi)容: <%@ language=VBscript%> <% dim conn set conn=server.createobject("ADODB.connection") con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服務(wù)器名稱或IP地址; UID=sa;PWD=數(shù)據(jù)庫(kù)密碼;DATABASE=數(shù)據(jù)庫(kù)名稱 %> |
建立記錄集對(duì)象:
| 以下為引用的內(nèi)容: set rs=server.createobject("adodb.recordset") rs.open SQL語(yǔ)句,conn,3,2 |
18、SQL常用命令使用方法:
(1) 數(shù)據(jù)記錄篩選:
sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名
[desc]"
sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')"
sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"
(2) 更新數(shù)據(jù)記錄:
sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式"
sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)
式"
(3) 刪除數(shù)據(jù)記錄:
sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式"
sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)
(4) 添加數(shù)據(jù)記錄:
sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)
(5) 數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):
AVG(字段名) 得出一個(gè)表格欄平均值
COUNT(*|字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)
MAX(字段名) 取得一個(gè)表格欄最大的值
MIN(字段名) 取得一個(gè)表格欄最小的值
SUM(字段名) 把數(shù)據(jù)欄的值相加
引用以上函數(shù)的方法:
| 以下為引用的內(nèi)容: sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式" set rs=conn.excute(sql) |
用 rs("別名") 獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。
(5) 數(shù)據(jù)表的建立和刪除:
CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長(zhǎng)度),字段2 類型2(長(zhǎng)度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 數(shù)據(jù)表名稱 (永久性刪除一個(gè)數(shù)據(jù)表)
19、記錄集對(duì)象的方法:
| 以下為引用的內(nèi)容: rs.movenext 將記錄指針從當(dāng)前的位置向下移一行 rs.moveprevious 將記錄指針從當(dāng)前的位置向上移一行 rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行 rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行 rs.absoluteposition=N 將記錄指針移到數(shù)據(jù)表第N行 rs.absolutepage=N 將記錄指針移到第N頁(yè)的第一行 rs.pagesize=N 設(shè)置每頁(yè)為N條記錄 rs.pagecount 根據(jù) pagesize 的設(shè)置返回總頁(yè)數(shù) rs.recordcount 返回記錄總數(shù) rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否 rs.eof 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否 rs.delete 刪除當(dāng)前記錄,但記錄指針不會(huì)向下移動(dòng) rs.addnew 添加記錄到數(shù)據(jù)表末端 rs.update 更新數(shù)據(jù)表記錄 |
20、Recordset對(duì)象方法
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset對(duì)象可以通過(guò)Source屬性來(lái)連接Command對(duì)象。Source參數(shù)可以是一個(gè)Command對(duì)象名稱、一段SQL命令、一個(gè)指定的數(shù)據(jù)表名稱或是一個(gè)StoredProcedure。假如省略這個(gè)參數(shù),系統(tǒng)則采用Recordset對(duì)象的Source屬性。
ActiveConnection
Recordset對(duì)象可以通過(guò)ActiveConnection屬性來(lái)連接Connection對(duì)象。這里的ActiveConnection可以是一個(gè)Connection對(duì)象或是一串包含數(shù)據(jù)庫(kù)連接信息(ConnectionString)的字符串參數(shù)。
CursorType
Recordset對(duì)象Open方法的CursorType參數(shù)表示將以什么樣的游標(biāo)類型啟動(dòng)數(shù)據(jù),包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
| 以下為引用的內(nèi)容: -------------------------------------------------------------- 常數(shù) 常數(shù)值 說(shuō)明 ------------------------------------------------------------- adOpenForwardOnly 0 缺省值,啟動(dòng)一個(gè)只能向前移動(dòng)的游標(biāo)(Forward Only)。 adOpenKeyset 1 啟動(dòng)一個(gè)Keyset類型的游標(biāo)。 adOpenDynamic 2 啟動(dòng)一個(gè)Dynamic類型的游標(biāo)。 adOpenStatic 3 啟動(dòng)一個(gè)Static類型的游標(biāo)。 ------------------------------------------------------------- |
以上幾個(gè)游標(biāo)類型將直接影響到Recordset對(duì)象所有的屬性和方法,以下列表說(shuō)明他們之間的區(qū)別。
| 以下為引用的內(nèi)容: ------------------------------------------------------------- AbsolutePage 不支持 不支持 可讀寫(xiě) 可讀寫(xiě) |
其中NextRecordset方法并不適用于Microsoft Access數(shù)據(jù)庫(kù)。
LockType
Recordset對(duì)象Open方法的LockType參數(shù)表示要采用的Lock類型,如果忽略這個(gè)參數(shù),那么系統(tǒng)會(huì)以Recordset對(duì)象的LockType屬性為預(yù)設(shè)值。LockType參數(shù)包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
| 以下為引用的內(nèi)容: ------------------------------------------------------------- 常數(shù) 常數(shù)值 說(shuō)明 -------------------------------------------------------------- |
adLockReadOnly 1 缺省值,Recordset對(duì)象以只讀方式啟動(dòng),無(wú)法運(yùn)行AddNew、Update及Delete等方法adLockPrssimistic 2 當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)會(huì)暫時(shí)鎖住其他用戶的動(dòng)作,以保持?jǐn)?shù)據(jù)一致性。
adLockOptimistic 3 當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)并不會(huì)鎖住其他用戶的動(dòng)作,其他用戶可以對(duì)數(shù)據(jù)進(jìn)行增、刪、改的操作。
adLockBatchOptimistic 4 當(dāng)數(shù)據(jù)源正在更新時(shí),其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對(duì)數(shù)據(jù)進(jìn)行增、刪、改的操作。
分享:人文的ASP開(kāi)發(fā)基礎(chǔ)入門(mén)之簡(jiǎn)介什么是ASP?ASP是Active Server Pages的縮寫(xiě),即是"活動(dòng)服務(wù)器頁(yè)面"。ASP文件是以.asp為擴(kuò)展名的,它的特殊之處在于所有可以在Html文件中使用的標(biāo)記語(yǔ)言多可以用于ASP文件中,而且ASP文
- asp FSO 讀寫(xiě)文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-ASP常用代碼剪輯
。