asp Http_Referer,Server_Name和Http_Host

刚才运行了一段代码,来查看Request.ServerVariables里面有多少值,看了一下,共50个!
代码<%=Request.ServerVariables.count%>
以前感觉Request.ServerVariables里的值很多,现在看看还是那么多,不过今天谈其中的一个值----HTTP_Referer
首先,我们先知道HTTP_Referer最常用的应用就是能够防止外部提交。

下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HTTP_REFERER"):
1) 直接用<a href="">
2) 用Submit或<input type="image">提交的表单(POST或GET)
3) 使用JAvaScript提交的表单(POST或GET)

下面我们再看看Request.ServerVariables("HTTP_REFERER")不能正常取值的情况:
1) 从收藏夹链接
2) 单击主页或自定义的地址
3) 在浏览器中直接输地址
4) 使用JavaScript的Location.href或者是Location.replace()
5) <%Response.Redirect%>
6) <%Response.AddHeader%>或者是<mete http-equiv="refresh">转向
7) 用XML加载地址

显然,Request.ServerVariables("HTTP_REFERER")在多数情况下是不能正常工作的。关于它的具体用法我会在以后的文章中详细的介绍,同时还会介绍Request.ServerVariables("HTTP_HOST")Request.ServerVariables("SERVER_NAME")之间的区别。
敬请关注!

Request.ServerVariables里Server_Name与Http_Host之间有什么区别呢?
如果不仔细看,您应该看不出它们之间的区别。在网上搜了很多,还是也没有看懂,不过最后还是有一句话很是明白:Http_Host可以Request出非80的Server_Port,简单地说就是,Http_Host=Server_Name:Server_Port。

在以前发表过关于Http_Referer作用的文章,现在结合它来写一个ASP防止外部提交的函数
复制代码 代码如下:
function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If Mid(server_v1,8,Len(server_v2))<>server_v2 then
chkpost=False
else
chkpost=True
end If
end function

Select Case
假如你希望选择多套代码之一来执行,可以使用 SELECT 语句:

复制代码 代码如下:
select case payment
case "Cash"
msgbox "You are going to pay cash"
case "Visa"
msgbox "You are going to pay with visa"
case "AmEx"
msgbox "You are going to pay with American Express"
case Else
msgbox "Unknown method of payment"
end select

以上代码的工作原理:首先,我们需要一个简单的表达式(常常是一个变量),并且这个表达式会被做一次求值运算。然后,表达式的值会与每个 case 中的值作比较,如果匹配,被匹配的 case 所对应的代码会被执行。

时间: 2024-12-22 17:22:23

asp Http_Referer,Server_Name和Http_Host的相关文章

asp Http_Referer,Server_Name和Http_Host_ASP基础

刚才运行了一段代码,来查看Request.ServerVariables里面有多少值,看了一下,共50个! 代码<%=Request.ServerVariables.count%> 以前感觉Request.ServerVariables里的值很多,现在看看还是那么多,不过今天谈其中的一个值----HTTP_Referer 首先,我们先知道HTTP_Referer最常用的应用就是能够防止外部提交. 下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HT

HTTP_HOST 和 SERVER_NAME 的区别详解_ASP基础

相关资料: 查看所有的Server VariablesServerVariables集合检索预定的环境变量意义 今天突然想起每次请求 HTTP_HOST 和 SERVER_NAME 的值总是一样的,干嘛还有用两个名称,它们之间有什么区别呢? 网上也没有一个确定的说法,到Microsoft上找到了一个解释: 在Windows2000下SERVER_NAME等于HTTP_HOST 在Windows2003下 >> 下面的*号为Request.ServerVariables("APPL_M

HTTP_HOST 和 SERVER_NAME 的区别详解

相关资料: 查看所有的Server VariablesServerVariables集合检索预定的环境变量意义 今天突然想起每次请求 HTTP_HOST 和 SERVER_NAME 的值总是一样的,干嘛还有用两个名称,它们之间有什么区别呢? 网上也没有一个确定的说法,到Microsoft上找到了一个解释: 在Windows2000下SERVER_NAME等于HTTP_HOST 在Windows2003下 >> 下面的*号为Request.ServerVariables("APPL_M

ASP过滤SQL非法字符并格式化html代码

sql <%function changechr(str) changechr=replace(replace(replace(replace(str,"<","<"),">",">"),chr(13),"<br>")," "," ") changechr=replace(replace(replace(replace(cha

asp 防采集代码 二

user_agent=Request.ServerVariables("HTTP_USER_AGENT") http_reffer=Request.ServerVariables("HTTP_REFERER") server_name=Request.ServerVariables("SERVER_NAME") '检查当前用户是否是蜘蛛人 function check(user_agent) allow_agent=split("Bai

Http

刚才运行了一段代码,来查看Request.ServerVariables里面有多少值,看了一下,共50个!代码<%=Request.ServerVariables.count%>以前感觉Request.ServerVariables里的值很多,现在看看还是那么多,不过今天谈其中的一个值----HTTP_Referer首先,我们先知道HTTP_Referer最常用的应用就是能够防止外部提交. 下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HTTP_

ISAPI_Rewrite 3.1 教程中文版_服务器其它

第一章:软件介绍 ISAPI_Rewrite 是一款适用于IIS的功能强大的基于正则表达式的URL处理模块.它兼容Apache的mod_rewrite的语法,从而使仅仅复制.htaccess文件就把配置从appach移植到IIS中或者从IIS移值到appach中变成可能.请参阅3.2兼容性图表这一节. ISAPI_Rewrite最重要的功能: ISAPI_Rewrite提供了和Apach mod_rewrite相同的句法和行为,使仅仅拷贝.htaccess文件就完成配置移植成为功能.(要想阅读更

ISAPI_Rewrite中文手册

参考:http://blog.csdn.net/fanxiaojie119/article/details/5353186 第一章:软件介绍ISAPI_Rewrite 是一款适用于IIS的功能强大的基于正则表达式的URL处理模块.它兼容Apache的mod_rewrite的语法,从而使仅仅复制.htaccess文件就把配置从appach移植到IIS中或者从IIS移值到appach中变成可能.请参阅3.2兼容性图表这一节.ISAPI_Rewrite最重要的功能:? ISAPI_Rewrite提供了

php 获取完整url地址_php技巧

主要是获取到地址栏的一些信息,域名,端口参数等 复制代码 代码如下: <?php //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; //获取网页地址 echo $_SERVER['PHP_SELF']."<br>"; //获取网址参数 echo $_SERVER["QUERY_STRING"]."<br>"; //来源网页的详细地址 echo