form action用post和get有什么区别
在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同:
1、Get方法通过URL请求来传递用户的输入,Post方法通过另外的形式。
2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。
仔细研究下面的代码。你可以运行之来感受一下:
代码
<!--两个Form只有Method属性不同-->
<form action="getpost.asp" method="get">
<input type="text" name="Text" value="Hello World" />
<input type=“submit” value=“Method=Get” />
</form>
<br />
<form action="getpost.asp" method="post">
<input type="text" NAME="Text" value="Hello World" />
<input type="submit" value=“Method=Post" />
</form>
<br />
<br />
<% If Request.QueryString("Text") <> "" Then %>
通过get方法传递来的字符串是: “<b><%=Request.QueryString("Text")%></b>”
<% End If %>
<br />
<% If Request.Form("Text") <> "" Then %>
通过Post方法传递来的字符串是:“<b><%=Request.Form("Text")%></b>”
<% End If %>
说明
把上面的代码保存为getpost.asp,然后运行,首先测试post方法,这时候,浏览器的url并没有什么变化,返回的结果是:
通过Post方法传递来的字符串是: "Hello World"
然后测试用get方法提交,请注意,浏览器的url变成了:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果是:
通过get方法传递来的字符串是:"Hello World"
最后再通过post方法提交,浏览器的url还是:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果变成:
通过Post方法传递来的字符串是:"Hello World"
提示
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、登陆页面可以被浏览器缓存;
2、其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议
在Form中,建议使用post方法。
- 暂时没有评论!
