人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

ASP精華文摘-002(轉)

ASP精華文摘-002(轉)

更新時間:2020-12-07 文章作者:未知 信息來源:網絡 閱讀次數:

轉貼-給ASP程序多一點點安全感 (2000.03.28)

給ASP程序多一點點安全感

# 使用 On Error Resume Next
這一行語句等于告訴服務器處理程序:"如果我出錯了,呵
呵不要管我,繼續……”。這樣做可以使你捕捉到很多可以
捕捉和處理的錯誤,比那些一出錯就把家底拿給人家看的代
碼好一些。調試的時候最好不要打開,一面無法發現哪里出
錯了。

# 服務器IIS設置成出錯后顯示"處理 URL 時服務器上出錯。
請和系統管理員聯絡!保ㄔ趹贸绦蚺渲弥性O置)
可以避免出錯后透露細節給訪問者,你的秘密就不用擔心從
出錯信息中透露出去了。

# 檢查傳遞的參數合法性
這一點十分重要,根據我的測試,國內很多站點上的 ASP
程序如果改變了它的參數的值,一般都會出錯。檢查合法性
就可以明顯的降低出錯概率。具體的方法這里不再敘述。

# 盡量少用 GET 方式傳遞參數
從最基本的一點上講,這種方式要比 POST 方式多傳輸一些
字節的 URL 給服務器,所占用的系統資源也會相應增加。
從安全性的角度來看也是很有好處的,可以減少命令行式的
攻擊。

# 少用中文文件名
可能你覺得用中文文件名比較爽,可是從專業的角度來看,
這樣做存在著很多弊端。手工敲地址時變得繁瑣起來;調試
中需要輸入文件名的地方還得打開輸入法或者拷貝粘貼文件
名;本身就不夠專業啦 ;-)

=======================================================================================================================================
轉貼-解決主頁中asp中文亂碼(2000.03.27)

解決主頁中asp中文亂碼

: 在做內有VBscript的asp homepage時,一個form提交方法為GET,
: 當form的表單傳給asp處理時,入...asp?name="張三"
: 可張三的中文已經亂碼,請問如何在asp中用vbscript將亂碼恢復成
: 正確的中文.
: .......

對文字進行如下cut()過程即可
<script language=vbscript runat=server>
Function cut(str)
length = Len(str)
count = 1
Do While count <= length
If strComp(Mid(str,count,1),"Z",1) > 0 Then
length = length -1
End If
count = count + 1
Loop
cut = Left(str,Length)
if Session("Version")<>3 then '若為高版本asp則不需處理
cut = str
end if
End Function
</script>

=======================================================================================================================================
轉貼-盡可能的使用本地(局部)變量 (2000.03.24)

盡可能的使用本地(局部)變量

局部變量是在子程序和函數中定義的(也就是常說局部范圍的變量),這些變量
被編譯成數字指向并放入一張表中。這些局部變量的指向可以通過一次編譯完成。
而全局變量則是在運行時被執行的。這就意味著局部變量的存取要比全局變量快
好幾倍。而且,多維全局變量是其中最慢的,當第一次使用一個多維全局變量時,
在新的對象產生之前,就要在整個對象模型中搜索一遍同名的對象。

以下是一個非常常見的例子:
Foo.bar.blah.baz = Foo.bar.blah.qaz(1)
If Foo.bar.blah.zaq = Foo.bar.blah.abc then
運行時產生如下結果:
1)變量Foo被定義為一個全局變量
2)變量bar被定義為Foo的一個成員
3)變量blah被定義為Foo.bar的一個成員
4)變量qaz被定義為Foo.bar.blah的一個成員
5)調用 Foo.bar.blah.quaz(1)
6)重復1至3。系統并不知道如果調用qaz改變了對象模型1-3步必須重新執行
7)定義baz為 Foo.bar.blah的成員,輸出值
8)重復1-3,執行zaq
9)重復1-3,執行abc

正如你看到的,效率極其低下,最快的方法就是把這些代碼寫在vbscript中:
Set myobj = Foo.bar.blah ' do the resolution of blah ONCE
Myobj.baz = myobj.qaz(1)
If Myobj.zaq = Myobj.abc then

=======================================================================================================================================
轉貼-正確使用Global.asa (2000.03.23)

正確使用global.asa是ASP開發者的一個共同問題。最主要的是要知道什么時候該用
Virtual Application,什么時候該用Virtual directory,并且知道他們的不同。

Virtual Directories(虛擬目錄)

簡而言之,virtual directories是虛擬出來的,不一定跟web root在同一個的目
錄上,可以是其他的。但是你可以像使用web root上的其他目錄一樣使用它。當
運行global.asa以后,ASP就把所有的虛擬目錄看成是應用程序根目錄上的子目錄。

值得注意,如果你的目錄已經是website root上的一個物理目錄,那就沒有必要
再去為那個目錄做虛擬目錄了。當然,你有也可以這樣做。如果你的目錄的路徑
實在是太長,長到你無法忍受,想它短一點。你可以用建虛擬目錄的方法。使它
短些,容易記住。例如:原來的目錄http://mysite.com/directory1/directory
2/file.asp,你可以為它建一個虛擬的目錄,http://mysite.com/directory2/fi
le.asp。這樣就方便多了了。

Virtual Applications(虛擬應用程序)

Virtual Applications 是一個獨立于website的web applications,而它跟Virtual
Directories一樣,不一定是web root上的一個目錄?梢允菑钠渌哪夸浱
擬出來的。ASP不允許應用程序共享他們的application和session變量,換句話說,
就是應用程序A不能訪問應用程序B(包括web root,因為web root也是看作一個
應用程序的根。)的application和session變量,他們是私有的。反之亦然。當你
確信這個應用程序不需要與整個website、website上其他子目錄上的ASP腳本共享
application和session變量,或者你想在同樣的內存空間里隔離一個進程來運行
應用程序時。你使用Virtual Applications是正確的。

要注意的一點是:在IIS 4.0里面的"新虛擬目錄向導” 所建立的virtual directory
(虛擬目錄)缺省就是一個virtual application(虛擬應用程序)。要把它變回
virtual directory的話,你可以在目錄的"屬性”里,選擇"目錄”標簽,單擊"卸載”。

小心使用多個 Global.asa

在一個website里面使用多個Global.asa,我們必須要注意,因為那是很容易導致
變量超出范圍而丟失的。通常我們必須限制在整個website上的Global.asa的樹木,
在每一個應用程序的的根目錄里面放一個。這是保持session和application變
量比較好的方法,不至于它們會丟失。通過在各個目錄上放置global.asa文件,
我測試的asp文件,可以幫助我們理解它們的關系。

例子,下面是一個website的設置。在這個website下面有兩個目錄。一個Virtual
Application(虛擬應用程序)叫admin,一個Virtual Directory(虛擬目錄)叫
images。在每一個目錄下有2個文件:global.asa和default.asp。每一個目錄里的
default.asp都是一樣的,global.asa則根據不同的目錄有所改變。

這個是default.asp的內容:
<%
Response.Write "Session Application_Directory = <b>" &
Session("application_directory") & "</b><br>"
Response.Write "Session Virtual_Directory = <b>" &
Session("virtual_directory") & "</b><br>"
Response.Write "Session Directory = <b>" & Session("directory") & "<
/b><br>"
%>

website root上global.asa的內容:

SUB Session_OnStart
Session("virtual_directory") = "Executed"
Session("directory") = "Executed"
END SUB

當你用瀏覽器瀏覽default.asp時,得到的結果是:

Session Application_Directory =
Session Virtual_Directory = Executed
Session Directory = Executed



Virtual directory(虛擬目錄) images 上global.asa的內容是(把website root
上的global.asa稍微做修改):

SUB Session_OnStart
Session("virtual_directory") = "Virtual Directory"
Session("directory") = "Virtual Directory"
END SUB

用瀏覽器瀏覽default.asp(images上的default.asp)時,得到的結果是:

Session Application_Directory =
Session Virtual_Directory = Executed
Session Directory = Executed

雖然在這個目錄上的global.asa文件里,我們為session變量賦了新的值。但是顯

示的仍然是website root上global.asa所設的值。

Virtual Application(虛擬應用程序) Admin 上 global.asa的內容:

SUB Session_OnStart
Session("application_directory") = "Executed"
END SUB

用瀏覽器瀏覽default.asp(admin上的default.asp)時,得到的結果是:

Session Application_Directory = Executed
Session Virtual_Directory =
Session Directory =


正如你所看到的,Session("virtual_directory")和Session("directory") 的值
不能從root web 那里"帶”過來。

Global.asa 參考

Global.asa 文件是一個可選文件,用戶可以在該文件中指定事件腳本,并聲明具
有會話和應用程序作用域的對象。該文件的內容給用戶顯示的,而是用來存儲事
件信息和由應用程序全局使用的對象。該文件的名稱必須是 Global.asa 且必須
存放在應用程序的根目錄中。每個應用程序只能有一個 Global.asa 文件。

Global.asa 文件只能包含如下內容:

用程序事件(Application_OnStart、Application_OnEnd)
會話事件(Session_OnStart、Session_OnEnd)
<OBJECT> 聲明
TypeLibrary 聲明


如果包含的腳本沒有用 <SCRIPT> 標記封裝,或定義的對象沒有會話或應用程序
作用域,則服務器將返回錯誤。服務器會忽略已標記的但未被應用程序或會話事
件使用的腳本以及文件中的 HTML 語句。

可以用任何支持腳本的語言編寫 Global.asa 文件中包含的腳本。如果多個事件
使用同一種腳本語言,就可以將它們組織在一組 <SCRIPT> 標記中。

當用戶保存對 Global.asa 文件所做的更改時,在重新編譯 Global.asa 文件之
前,服務器會結束處理當前應用程序的所有請求。在此期間,服務器拒絕其他請
求并返回一個錯誤消息,說明正在重啟動應用程序,不能處理請求。

當用戶當前的所有請求處理完之后,服務器對每個會話調用 Session_OnEnd 事件,
刪除所有活動會話,并調用 Application_OnEnd 事件關閉應用程序,然后編譯
Global.asa 文件。接下來,用戶的請求將啟動應用程序并創建新的會話,觸發
Application_OnStart 和 Session_OnStart 事件。

但是,保存 Global.asa 文件中所包含的文件的更改并不能使服務器重新編譯
Global.asa。為了讓服務器識別包含文件的改動,必須再保存一下Global.asa
文件。

在Global.asa 文件中聲明的過程只能從一個或多個與 Application_OnStart、
Application_OnEnd、Session_OnStart 和 Session_OnEnd 事件相關的腳本中調用。
在基于ASP的應用程序中的 ASP 頁中,它們是不可用的。

-------------
后記,有些名詞,實在不知道用什么中文的名字好。所以很多的都用了英文。
看起來好象很別扭的。請原諒。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 崇信县| 新乡县| 呼玛县| 镇沅| 招远市| 民丰县| 利辛县| 邹平县| 阳春市| 商城县| 章丘市| 山西省| 澳门| 锡林浩特市| 定南县| 芦溪县| 鄂伦春自治旗| 哈巴河县| 名山县| 淮滨县| 金阳县| 天台县| 措勤县| 海安县| 平远县| 吉首市| 麻栗坡县| 漠河县| 松阳县| 天全县| 绵阳市| 芷江| 怀来县| 宁海县| 泾源县| 司法| 瑞丽市| 拉萨市| 崇明县| 临猗县| 南和县|