在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>
<input type=“submit” value=“method=get”></input>
</form>
<br>
<form action=“getpost.asp” method=“post”>
<input type=“text” name=“text” value=“hello world”></input>
<input type=“submit” value=“method=post”></input>
</form>
<br>
<br>
<% if request.querystring(“text”) <> ““ then %>
通过get方法传递来的字符串是: “<b><%= request.querystring(“text”) %></b>“<br>
<% end if %>
<% if request.form(“text”) <> ““ then %>
通过post方法传递来的字符串是: “<b><%= request.form(“text”) %></b>“<br>
<% 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
而返回的结果变成:
通过get方法传递来的字符串是: "hello world"
通过post方法传递来的字符串是: "hello world"
提示
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在url上。如果:
1、 登陆页面可以被浏览器缓存;
2、 其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议
在form中,建议使用post方法。