注册 登录
编程论坛 ASP技术论坛

asp中POST的用法?

117812390 发布于 2008-01-17 11:18, 3425 次点击
我以前做网页一直用GET 听说很不安全啊 请教下POST怎么用呢 怎么接受传过来的数据呢
6 回复
#2
1178123902008-01-17 11:23
补充
要是在同一页面处理该怎么传递呢 比如说我不用表单只是加一个?act=aa 这样 然后开始对数据进行操作 这个时候POST还能用吗 ?
#3
madpbpl2008-01-17 12:13
[url]http://zhidao.baidu.com/question/1201107.html[/url]
#4
xmuer2008-01-17 13:06
发一个自己写的用表单本页提交本页处理的code!
<%
id=request("id")
set rs=server.CreateObject("adodb.recordset")
sql="select * from class where id="&id

rs.open sql,conn,3,3
%>
<table width="730" height="634" border="1">
  <tr>
    <td width="706" height="583">
    <div id="apDiv1">
    <form action="edit_class.asp?action=edit&id=<%=rs("id")%>" method="post" name="form">    <input type="text" value="<%=rs("class")%>" name="renane" class="input">
    <input type="submit" value="修改" class="click_pw">
    <input type="button" value="返回" class="click_pw"onClick="javascript:window.top.mainFrame.location='admin_viewlei.asp';">
    </form>
    </div>
</td>
  </tr>
  <tr>
    <td height="26">&nbsp;</td>
  </tr>
</table>
<%
rs.close
set rs=nothing
if request("action")="edit" then
call edit()

end if
%>
<%
sub edit()
    dim rename
    rename=request.Form("renane")
    if rename="" then
    Response.Write "<Script>alert('请正确输入!');history.go(-1);</Script>"    
    Response.End
    else
        set rs=server.CreateObject("adodb.recordset")
        sql="select * from class where id="&id
        rs.open sql,conn,3,3
        rs("class")=rename
        rs.update
        rs.close
        set rs=nothing
        response.Redirect("admin_viewlei.asp")
    end if
end sub
%>
原理:
用表单提交的时候action="edit_class.asp?action=edit&id=<%=rs("id")%>" ,即传递一个action的值给本页,点击提交按钮时候用:
if request("action")="edit" then
call edit()
来判断,action值符合要求后,然后调用定义好的edit()函数!
#5
XMeLoDy2008-01-17 16:45
三楼的,你这样对字符没有过滤,更不安全
#6
1178123902008-01-19 15:36
!!!!!
这样还是有信息在连接上暴露出来了 有没有更好的方法连接上不显示传递的参数
#7
icelovebai2008-01-20 11:02
直接用request.form("aa")就可以了~~
post中是可以使用url后缀参数的
1