萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> java >> ASP的instr()函數實現用戶權限問題

ASP的instr()函數實現用戶權限問題

class="area">   在多用戶網站中常常需要對用戶進行分級,不同級別的用戶有不同的權限,在不是非常復雜的網站中常常使用instr()函數來實現用戶權限。

Instr函數 可以判斷一字符串中是否包含另一字符串。
也就是說將用戶對各個欄目的權限在後台以多項選則添加到數據庫中,我們知道這樣的提交asp是處理成一個逗號分割的字符串;
這樣登錄驗證成功後,將權限這個字段的字符串放到session中,然後就可以用Instr函數來判斷是否有對應權限的字符串,無則無權限。
代碼如下:
〈%
quanxian="學生,老師,主任,校長"
yonghu="老師"
response.write (InStr(quanxian,yonghu)  & "<br />")

If (InStr(quanxian,yonghu)>0) Then
 response.write yonghu
Else
 response.write "權限不對"
End if
%〉

------InStr 函數 -------------------------------

返回某字符串在另一字符串中第一次出現的位置。

InStr([start, ]string1, string2[, compare])

參數

start

可選項。用於設置每次搜索的開始位置。如果省略,將從第一個字符的位置開始搜索。如果 start 包含 NULL,則會出現錯誤。如果已指定 compare,則必須要有 start 參數。

string1

必選項。接受搜索的字符串表達式。

string2

必選項。要搜索的字符串表達式。

compare

可選項。指示在計算子字符串時使用的比較類型的數值。有關數值,請參閱“設置”部分。如果省略,將執行二進制比較。

設置

compare 參數可以有以下值:

常數 值 描述 vbBinaryCompare 0 執行二進制比較。 vbTextCompare 1 執行文本比較。

返回值

InStr 函數返回以下值:

如果 InStr 返回 string1 為零長度 0 string1 為 Null Null string2 為零長度 start string2 為 Null Null string2 沒有找到 0 在 string1 中找到 string2 找到匹配字符串的位置 start > Len(string2) 0
注意 InStrB 函數使用包含在字符串中的字節數據,所以 InStrB 返回的不是一個字符串在另一個字符串中第一次出現的字符位置,而是字節位置。

注:使用instr函數時必須給兩個字符串加上雙引號

多人認為InStr InStrRev 的值是一樣的,覺得很奇怪。

比如 InStrRev("1234567cike.org","cike.org")InStr("1234567cike.org","cike.org") 的值都是8

的確,在上面這個情況下,他們倆的值是一樣的,讓我們來仔細看看。

官方說明中 InStr 是返回某字符串在另一字符串中第一次出現的位置 。

還有另一個類似的函數叫 InStrRev,官方說明中是返回某字符串在另一個字符串中出現的從結尾計起的位置。

認為 InStrRev("1234567890abcde1234","abcde") 的值是 5,是從後往前數,其實這是錯誤的

正確的說明是, InStrRev 還是從左往右算位置,但是查找比較的時候是從尾部開始比較的(從右開始)

比如 InstrRev("123cike.org1234cike.org","cike.org") 的值是 16,因為存在兩個"abcde"

那麼 Instr("123cike.org1234cike.org","cike.org") 的值是 4

這下明白 Instr,InstrRev 的區別的了吧

copyright © 萬盛學電腦網 all rights reserved