Asp classic 如何在ASP中执行按钮操作?
我是ASP的新手。我需要插入值到数据库中使用ASP点击提交按钮。 我知道怎么做 我的代码是:Asp classic 如何在ASP中执行按钮操作?,asp-classic,Asp Classic,我是ASP的新手。我需要插入值到数据库中使用ASP点击提交按钮。 我知道怎么做 我的代码是: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <!--#include file="connection.asp"--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="connection.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Form</title>
</head>
<form name="form1" id="form1" method="post" onsubmit="return validate()">
<h3>FORM</h3>
<table align="center" cellpadding = "10">
<tr>
<td>Name</td>
<td><input type="text" name="uname" id="uname" /></td>
</tr>
<tr>
<td>Mobile Number</td>
<td><input type="text" name="umobile" id="umobile" maxlength="10" /></td>
</tr>
<tr>
<td>Email Address</td>
<td><input type="text" name="uemail" id="uemail" /></td>
</tr>
<tr>
<td>Residing City
<td><input type="text" name="rescity" id="rescity" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
<body>
<%
uname = request.Form("uname")
umobile = request.Form("umobile")
uemail = request.Form("uemail")
city = request.Form("city")
set rs = Server.CreateObject("ADODB.Recordset")
Qry = "INSERT INTO enquirydetails([name],[mobile],[email],[residingcity]) values ('"&(uname)&"','"&(umobile)&"','"&(uemail)&"','"&(city)&"')"
rs.OPEN Qry,Conn
%>
</body>
</html>
形式
形式
名称
手机号码
电子邮件地址
居住城市
使用此代码,如果我转到该页,将插入为空的值
请给我任何建议。因为无法检查表单中的数据是否已提交,因此每次加载页面时,插入新记录的代码都在运行 通常的方法是检查Request.Form的长度
以查看是否提交了任何表单参数。像这样的东西应该可以修复你的代码
0那么
uname=请求表(“uname”)
umobile=request.Form(“umobile”)
uemail=request.Form(“uemail”)
城市=申请表(“城市”)
set rs=Server.CreateObject(“ADODB.Recordset”)
Qry=“在查询详情([姓名]、[手机]、[电子邮件]、[居住城市])值(“&(uname)&”、“&(umobile)&”、“&(uemail)&”、“&(城市)&”)中插入”
康涅狄格州,南卡罗来纳州
如果结束
%>
但是仍然存在一个问题,那就是插入的方法。通过将值直接动态分配给SQL字符串,您将使应用程序处于打开状态,这是一种针对对数据库后端进行不安全调用的web应用程序的常见攻击
ADO提供了一个名为ADODB.Command
的有用对象,它通过构建参数化查询来帮助我们,下面是一个如何替换现有代码的示例
0那么
uname=请求表(“uname”)
umobile=request.Form(“umobile”)
uemail=request.Form(“uemail”)
城市=申请表(“城市”)
Set cmd=Server.CreateObject(“ADODB.Command”)
sql=“插入查询详细信息([姓名],[手机],[电子邮件],[居住城市])值(?,,,?)”
使用cmd
.ActiveConnection=Conn'假设这是您的连接字符串
.CommandType=adCmdText
.CommandText=sql
'创建参数并按顺序追加它们
.Parameters.Append(.CreateParameter(@name),adVarWChar,adParamInput,255))
.Parameters.Append(.CreateParameter(“@mobile”,adVarWChar,adParamInput,255))
.Parameters.Append(.CreateParameter(@email),adVarWChar,adParamInput,255))
.Parameters.Append(.CreateParameter(“@residingcity”,adVarWChar,adParamInput,255))
'为参数指定值
.Parameters(“@name”).Value=uname
.Parameters(“@mobile”).Value=umobile
.Parameters(“@email”).Value=uemail
.Parameters(“@ResistingCity”)。值=城市
.Execute()
以
Set cmd=Nothing
如果结束
%>
注意:如果您对此代码有问题,可能是使用命名常量(adCmdText
等)来解决此问题,请参阅其中介绍了如何使用命名常量
我不理解sql中变量周围的括号--“&(uname)&”这些应该会出现。这里有一些插入示例,您也可以遵循这些示例—您缺少一个检查,以查看您的表单是否已发布,例如if Len(Request.form)>0,然后围绕您的参数插入,并插入代码。否则,即使您没有发布任何数据,插入仍会触发。@Dee认真推荐推广不良做法的链接?你怎么知道OP使用的是MS Access?这不需要天才就能做到,上一个活动是11分钟前,11分钟前投票表决我的答案。真的很幼稚@dee谢谢,它工作得很好,但如何在这里给出按钮名称@Lankymart@Janani任何
标记都将从请求中提取。如果满足以下条件,则形成集合。1.
是正在提交的
的子项。2. <代码>
有一个名称
属性,如果没有名称
它将不会被提交,这是在请求.表单
集合中识别它的方式。如果您希望通过“提交”按钮的值,请将您的
更改为
,然后您可以使用请求表单(“提交”)
检索它。是否认真否决?你想解释一下答案的错误吗?很抱歉,我上一个示例中的输入错误应该是Request.Form(“yourname”)
,因为Request.Form
从
中去掉了name
属性。请给我一些在ASP中下载Excel的示例程序长条船