您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> java >> 正文

ASP的instr()函数实现用户权限问题

作者:佚名    责任编辑:admin    更新时间:2022-06-22

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 的区别的了吧