网络编程
位置:首页>> 网络编程>> Asp编程>> asp Http_Referer,Server_Name和Http_Host

asp Http_Referer,Server_Name和Http_Host

 来源:asp之家 发布时间:2011-03-29 11:12:00 

标签: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 所对应的代码会被执行。

0
投稿

猜你喜欢

  • 近又开始做网页,发现之前写的页面不规范,这次从头在来,希望一次比一次进步,先从CSS中的标点符号开始吧,这篇做为草稿已经放了很长时间了,还是
  • 之前在懒懒分会上分享的一点关于border画小图的内容, 完整的ppt在这里.原理css盒模型一个盒子包括: margin+border+p
  • 对于SQL的新手,NULL值的概念常常会造成混淆,他们常认为NULL是与空字符串''相同的事。情况并非如此。例如,下述语句是
  • 一、偏好资源的积累利用DreamWeaver 4制作网页会应用到许多各种类型的要素,比如色彩、图片、模板、脚本等。利用站点资源面板将这些东东
  • 首先,了解下原理。1,提供文本框进行查询内容的输入2,将查询信息提交页面程序处理3,程序页主要作用:接受查询信息,根据此信息调用特定的SQL
  • 防止客户机的请求互相干扰或者服务器与维护程序相互干扰的方法主要有多种。如果你关闭数据库,就可以保证服务器和myisamchk和isamchk
  • 前一段时间,一个流行的东方系列mv 《bad apple》  带来一股奇怪的风潮: 各种技术狂人纷纷把这段mv在一些匪夷
  • 连续看到几个和 Oracle 优化器隐含参数 _sort_elimination_cost_ratio 相关的优化案例(Refer Refe
  • 文章主要讲术了一些SQL Server新的Bug,帮您认识这些被忽略的SQL Server注入技巧。1.关于Openrowset和Opend
  • MySQL插件式存储引擎是MySQL数据库服务器中的组件,负责为数据库执行实际的数据I/O操作,并能允许和强制执行面向特殊应用需求的特定特性
  • Insus.NET解决这个问题,只有创建另外一个表,将存储用户决定要跟踪的表,以及这个表中需要跟踪的字段。 还要创建另外一个表[Audit]
  • 设计网站的同志背景主要有两种:学计算机、学艺术。基本上会写代码的不懂设计,会设计的不懂代码,这个格局似乎到今天还没变。某些学计算机的同学,有
  • 1.建立设计规范的意义        建立设计文档的根本目的
  • 鼠标双击滚动屏幕,单击停止滚动,很多小说新闻网站都有这个很人性化的功能,阅读起小说、新闻来很方便,不用手动拉滚动条。js代码如下:<h
  • SOLyog的下载、安装以及使用很简单。我去了相关网站下载,它只有384K字节大小。它把两个文件(一个可执行文件.exe和一个动态链接库文件
  • WordPress可以改造成twitter一样的微博网站,但是有一个坏处就是你要么用来做博客要么用来做微博,功能难兼得。相信大家在访问一些知
  • Q0.创建用户【前提】    你必须有CREATE USER系统权限。当你使用CREATE USER语句创建一
  • 一: 删除LOG1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器-
  • 没事在这里发一下关于数据库大批量插入数据的效率对比,用ACCESS和MSSQL,数值是在本机测试,根据不同的环境和配置,数值可能会有较大差别
  • 一、介绍这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。虽然这
手机版 网络编程 asp之家 www.aspxhome.com