主题:  处理表单的SQL问题,在线等,急死我了!

icerain

职务:普通成员
等级:1
金币:1.0
发贴:249
#12003/9/8 1:28:16
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
/zhelong/dianying/zhuce.asp, 第 25 行

源代马如下:::




Untitled Document

<%
dim user,pwd,email,qq,msn,wenti,daan,add,tel,sex
user=Request.Form("user")
pwd=Request.Form("pwd")
email=Request.Form("email")
qq=Request.Form("qq")
msn=Request.Form("msn")
wenti=Request.Form("wenti")
daan=Request.Form("daan")
add=Request.Form("add")
tel=Request.Form("tel")
sex=Request.Form("sex")
if user="" or pwd="" or email="" or wenti="" or daan="" then
Response.Write"您填写的内容不完整!
"
Response.Write"返回"
Response.End
end if
set rs = server.createobject("adodb.recordset")
sql="select * from yonghu where user= "& user &""
rs.Open sql,conn,1,1
if rs("user")<>"" then
Response.Write"此用户名已被注册!
"
Response.Write"返回"
Response.End
end if
rs.Close
set rs=nothing
dim sqlup
sqlup="insert into user (usr,pwd,email,qq,msn,wenti,daan,add,tel,sex) values (" & user & "," & pwd & "," & email & "," & qq & "," & msn & "," & wenti & "," & daan & "," & add & "," & tel & "," & sex & ")"
rs.Open sqlup,conn,1,1
rs.Close
set rs=nothing
Response.Write"注册成功!
"
Response.Write"请关闭此窗口!"
%>

第25行是 rs.Open sql,conn,1,1
但肯定是 sql="select * from yonghu where user= "& user &"" 有问题

我搞了半天也没搞明白,不知道怎么回事!



whoisspider

职务:普通成员
等级:1
金币:1.0
发贴:245
#22003/9/8 1:41:39
sql="select * from yonghu where user= '" & user &"'"

字符要用 '' 注明,数字不用!
不过这样写,如果密码没有经过加密,安全性有问题的!

看这篇文章!和你的情况差不多!

www.pconline.com.cn/pcedu/sj/wz/dreamweaver/10210/95466.html

编辑历史:[这消息被whoisspider编辑过(编辑时间2003-09-08 02:30:14)]


缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#32003/9/8 2:37:08
"select * from yonghu where user= "& user &""
insert into user

yonghu和user两个表?


另外如上所说外,user关键字最好避免.否则请用[]括号起来



icerain

职务:普通成员
等级:1
金币:1.0
发贴:249
#42003/9/8 7:54:44
二楼的朋友你说的
字符要用 '' 注明,数字不用!
可是我无法判断注册的人写的是中文还是英文 还是数字呀

不是二个表,是一个
后来改的名叫yonghu
本人喜欢用拼音的



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#52003/9/8 8:24:48
不是中文英文还是数字这样区分.是分字符型还是数字性,你接触程序之前应该要对这个有个概念.
xxx = 1234和yyy = "1234"是两种不同的变量

不管对方输入什么,都要当作字符型来做处理.

编辑历史:[这消息被allinhands编辑过(编辑时间2003-09-08 08:28:26)]


whoisspider

职务:普通成员
等级:1
金币:1.0
发贴:245
#62003/9/8 10:08:16
我说的意思是字段名是字符型还是数字型:
比如user这个字段,在数据库表格里一般是字符型(文本),比如user用户名为123,那么就sql这么写:
select * from yonghu where user = '123'

假如有个id字段,是数字型,值也是123,那么sql这么写:
select * from yonghu where id = 123

不管用户输入数字、字符还是时间,通过Request传递过来的都是当字符型来处理!



icerain

职务:普通成员
等级:1
金币:1.0
发贴:249
#72003/9/8 20:19:11
恍然大悟,我明白了。。

THANK YOU VERY 大 MUCH~~~~~~~~