这段ASP代码那儿出错了,请教高手?

来源:百度知道 编辑:UC知道 时间:2024/05/16 02:05:20
<% option explicit%>
<%Response.Buffer=true%>
<!--#include file="conn.asp"-->
<html>
<head>
<title>删除留言</title>
</head>

<body>
<form method="post" action="" name="form1">
<p align="center">请输入删除密码:
<input type="password" name="password">
<input type="submit" value="确定"></form>
<%
if request.form("password")="123456" then
Dim sql,id
id=Request.QueryString("id")
sql="Delete From article Where id ="& id
conn.Execute(sql)
conn.close
set conn=nothing
response.redirect "guesetbook.asp"
elseif request("password")<>"" then
response.write"密码错误请重新输入"
End if
%>
<hr width="8

id=Request.QueryString("id")
这个句子出错了...
因为这个网页没带参数,所以变量id不能获取数据...
从而导致sql="Delete From article Where id ="& id 这个句子缺少参数...
id变量的值为空,所以导致不能执行这个句子

首先修改
sql="Delete From article Where id ="& id
为:
sql="Delete From article Where id ='"&id&"'"

然后测试,还有错的话

注意看上个页面跳到此页面时,IE地址栏是否有

id=xxx的类似字符,如果没有,请检查上一页的数据传递方式

即类似<form method="post" action="" name="form1">
中的method,应该是GET,即method="get"

sql="Delete From article Where id ="& id &""

golden和菲菲猪都回答的比较正确..具体来讲.你这段代码是没有问题的。问题出在你上一个页面.也就是你跳转过来的页面里面。. 跳转过来的地址后面是否带上了参数"ID"..如果在地址后面带了ID的话。.你测试哈这个页面..在页面开始的地方response.write Request.QueryString("id") response.end()测试哈..有没有数据显示.如果没有显示的话。. 就是你上个页面输出ID的地方出错了。. 另外一点。.如果你的ID在上一个页面里面是在表单里面.也就是说用的表单控件来传值的话 那么就改成request.form("id")就好了。. 如果实在不行
我的E-M