昨天做权限管理,给普通管理员分配权限,做法是:
1,高级管理员表
2,普通管理员表(其中包含可管理的文件夹名称)
3,文件夹表
在普通管理员管理的时候,需要检验权限
所以现在主要要进行的是取到页面的当前路径。
我在网络上找到了两个方法
方法一:url=trim("<script language=javascript>document.write(location.href)</script>")
方法二:<%
dim str,host,url,keyword,full
str="http://";
host = Request.ServerVariables("HTTP_HOST")
url = Request.ServerVariables("PATH_INFO") ’或url
keyword = Request.ServerVariables("QUERY_STRING")
if keyword <> "" then
full = str&host&url&"?"&keyword
else
full = str&host&url
end if
%>
dim str,host,url,keyword,full
str="http://";
host = Request.ServerVariables("HTTP_HOST")
url = Request.ServerVariables("PATH_INFO") ’或url
keyword = Request.ServerVariables("QUERY_STRING")
if keyword <> "" then
full = str&host&url&"?"&keyword
else
full = str&host&url
end if
%>
取到路径以后就可以根据权限去验证了(这时候会用到SPLIT()):
if instr(url,权限文件夹名称)<>0 then
有权限
end if
按照道理说应该可以了,但是
出现问题了:
在用方法一取到的路径时,怎么做就不可以,仔细输出验证的时候才发现只要在instr()中用参数url的时候就不可以取到应该取到的值,而把参数直接换成当前路径的字符串时就可以成功,为什么?
再用UCASE(URL)发现,输出的URL为空了。而LCASE(URL)则是正确的路径。
可见用方法一获取的URL可能不是字符串,但是用CSTR()转换后还是不行。???
尝试用方法二,成功了,。。。
(提示,此处没有必要把全部路径都取了,只要 url = Request.ServerVariables("PATH_INFO") 就够了。。。)
为什么方法一取当前路径不可以呢???
继续郁闷中,。。。。
见笑,见笑。。。
转载于:https://blog.51cto.com/mdyy869/89065