9 个解决方案
#1
不明白!多到什么程度
#2
使用post方式就行。至于行不行,就看你的服务器的反应了。应该没有问题的。
#3
<body>
<form id=frm>
<INPUT TYPE="text" id="input1" value="">
</form>
<BR>
<A HREF="#" onclick=show.innerHTML=frm.innerHTML;>你要上传的内容</A>
<div id=show>
</div>
<form id=frm>
<INPUT TYPE="text" id="input1" value="">
</form>
<BR>
<A HREF="#" onclick=show.innerHTML=frm.innerHTML;>你要上传的内容</A>
<div id=show>
</div>
#4
不推荐这样做,这样保存下来的数据的价值不高吧,以后想作任何的筛选,查找,排序都会很麻烦的,还不如现在麻烦一点全写好,字段总不至于一百多个吧!
#5
如果是直接提交到数据库的话,不好做到,做到也麻烦
如果是表单中的表单数和类型与数据库中的一样并且顺序也一样,可以这样
在提交的时候通过get方式,注:通过get方式确定你提交的字符串未超过128位,否则就不要这么做
然后在获取的时候,获取Request.ServerVariables("QUERY_STRING")
试一下了,都好几年没摸过asp了,估计有错误的地方
如果是表单中的表单数和类型与数据库中的一样并且顺序也一样,可以这样
在提交的时候通过get方式,注:通过get方式确定你提交的字符串未超过128位,否则就不要这么做
然后在获取的时候,获取Request.ServerVariables("QUERY_STRING")
rem 每个表单的输入验证假设你在客户端已经做了
rem method=get(queststr<=128)在提交的时候通过get方式,注:通过get方式确定你提交的字符串未超过128位
dim requestStr=Request.ServerVariables("QUERY_STRING")&""'获取表单参数,如果为空,表示没有传递参数
if requestStr.trim="" then
response.clear()
response.write "没有填写表单"
response.end()
end if
dim fieldsNum =9'这个要等于你数据库中的字段数减一,假设有10列
dim requestArr()=split(requestStr,"&")'将获取到的字符串存入数组
dim requestNum=0'数组列数
requestNum=ubound(requestArr)
if requestNum<> fieldsNum then'如果传递的参数不等于数据表的列数,停止继续解释网页
response.clear()
response.write "参数个数不对"
response.end()
end if
dim sql'定义sql连接字符串变量
dim insertArr()'定义要写入的数据组
dim i=0
'将字段转换成SQL格式
for i=0 to requestNum
if isnull(requestArr(i)) then
response.clear()
response.write "所有表单项不能为空"'在这里你也可以改成哪些字段不允许为空
response.end()
end if
if not isnumeric(requestArr(i)) then
sql &= '"& requestArr(i) &"',"
else
sql &=requestArr(i) &","
end if
i +=1
next
sql = left(sql,len(sql)-1)
rem conn是已定义数据库连接对象
rem rs是已定义数据表连接对象或存储过程对象,当然你这么懒,估计不会写过程
sql = "insert [yourtTable] values(sql)"
rem 第一次运行,先用以下三行测试一下连接字符串是否跟数据库中一一对应,
rem 如果不对应,就检查一下是否表单顺序有误,或者获取到的表单值类型不一样或者其他错误
'response.clear()
'response.write (sql)
'response.end
on err resum next'如果你有错误诊断程序就在下面调用
rs.execute(sql)
'关闭数据库对象,这个你应该会哈
试一下了,都好几年没摸过asp了,估计有错误的地方
#6
真是好久没写过asp了,挤了五分钟才挤出来,...看看能不能运行先
#7
忘了一句,一定要先过滤SQL注入字符啊~~~~
#8
对于表单较多或者传递的字符较多时,可以考虑使用post传递,然后Server.CreateObject("wmrmobjs.wmrmheader"),但是一定要筛选掉request.cookies,request.servervariable,否则会不一致
#9
谢谢大家,终于说服客户让用户下载文档填写然后发到邮箱。不然真是头晕~~~
结贴,送分。
结贴,送分。
#1
不明白!多到什么程度
#2
使用post方式就行。至于行不行,就看你的服务器的反应了。应该没有问题的。
#3
<body>
<form id=frm>
<INPUT TYPE="text" id="input1" value="">
</form>
<BR>
<A HREF="#" onclick=show.innerHTML=frm.innerHTML;>你要上传的内容</A>
<div id=show>
</div>
<form id=frm>
<INPUT TYPE="text" id="input1" value="">
</form>
<BR>
<A HREF="#" onclick=show.innerHTML=frm.innerHTML;>你要上传的内容</A>
<div id=show>
</div>
#4
不推荐这样做,这样保存下来的数据的价值不高吧,以后想作任何的筛选,查找,排序都会很麻烦的,还不如现在麻烦一点全写好,字段总不至于一百多个吧!
#5
如果是直接提交到数据库的话,不好做到,做到也麻烦
如果是表单中的表单数和类型与数据库中的一样并且顺序也一样,可以这样
在提交的时候通过get方式,注:通过get方式确定你提交的字符串未超过128位,否则就不要这么做
然后在获取的时候,获取Request.ServerVariables("QUERY_STRING")
试一下了,都好几年没摸过asp了,估计有错误的地方
如果是表单中的表单数和类型与数据库中的一样并且顺序也一样,可以这样
在提交的时候通过get方式,注:通过get方式确定你提交的字符串未超过128位,否则就不要这么做
然后在获取的时候,获取Request.ServerVariables("QUERY_STRING")
rem 每个表单的输入验证假设你在客户端已经做了
rem method=get(queststr<=128)在提交的时候通过get方式,注:通过get方式确定你提交的字符串未超过128位
dim requestStr=Request.ServerVariables("QUERY_STRING")&""'获取表单参数,如果为空,表示没有传递参数
if requestStr.trim="" then
response.clear()
response.write "没有填写表单"
response.end()
end if
dim fieldsNum =9'这个要等于你数据库中的字段数减一,假设有10列
dim requestArr()=split(requestStr,"&")'将获取到的字符串存入数组
dim requestNum=0'数组列数
requestNum=ubound(requestArr)
if requestNum<> fieldsNum then'如果传递的参数不等于数据表的列数,停止继续解释网页
response.clear()
response.write "参数个数不对"
response.end()
end if
dim sql'定义sql连接字符串变量
dim insertArr()'定义要写入的数据组
dim i=0
'将字段转换成SQL格式
for i=0 to requestNum
if isnull(requestArr(i)) then
response.clear()
response.write "所有表单项不能为空"'在这里你也可以改成哪些字段不允许为空
response.end()
end if
if not isnumeric(requestArr(i)) then
sql &= '"& requestArr(i) &"',"
else
sql &=requestArr(i) &","
end if
i +=1
next
sql = left(sql,len(sql)-1)
rem conn是已定义数据库连接对象
rem rs是已定义数据表连接对象或存储过程对象,当然你这么懒,估计不会写过程
sql = "insert [yourtTable] values(sql)"
rem 第一次运行,先用以下三行测试一下连接字符串是否跟数据库中一一对应,
rem 如果不对应,就检查一下是否表单顺序有误,或者获取到的表单值类型不一样或者其他错误
'response.clear()
'response.write (sql)
'response.end
on err resum next'如果你有错误诊断程序就在下面调用
rs.execute(sql)
'关闭数据库对象,这个你应该会哈
试一下了,都好几年没摸过asp了,估计有错误的地方
#6
真是好久没写过asp了,挤了五分钟才挤出来,...看看能不能运行先
#7
忘了一句,一定要先过滤SQL注入字符啊~~~~
#8
对于表单较多或者传递的字符较多时,可以考虑使用post传递,然后Server.CreateObject("wmrmobjs.wmrmheader"),但是一定要筛选掉request.cookies,request.servervariable,否则会不一致
#9
谢谢大家,终于说服客户让用户下载文档填写然后发到邮箱。不然真是头晕~~~
结贴,送分。
结贴,送分。