包头安锐局长去哪了:ASP综合新手问题提问请各位踊跃帮助3Q

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 19:52:22
问题一!
除了使用session()变量来验证用户不让用户直接输入连接后就登陆。
请问还有什么方式!

问题二:
ASP插入记录连接数据库后创建记录集有几种方式!
插入数据的写法是什么用ASP写法不是SQL语法!

问题三
如何做到例如:投票系统的验证就是投过一次后就不能再次投票,是验证IP地址还是什么!

问题四
验证数据库中的数据的写法是怎么写的!例如
name=request.form("name")
pass=request.form("pass")
if name<>数据库中的name字段的数据 and pass<>数据库中的pass字段的数据 then
end if
是不是要先创建一个查询语句,是怎么创建的!有几种方式!

以上问题请各位朋友能详细说明最好最好有例子!谢谢

1、用COOKIES,记录用户名和密码,然后每个需要登陆才能看到的页面顶部从COOKIES里读出用户名密码进行验证。

2、一般连接了数据库以后会建一个RECORDSET对象:
set rs=Server.CreateObject("ADODB.Recordset")
然后:rs.open "select * from tablename",conn,3,2
rs.addnew '插入一条记录
rs("字段1")=值1
rs("字段2")=值2
……
rs.update
rs.close
来添加记录
不用RECORDSEST也可以使用:
sql="insert into tablename (字段1,字段2……) values(值1,值2……)"
conn.Execute(sql)
也能实现添家记录

3、投票系统如果是匿名投票,建议不要用IP。因为虚拟拨号上网的IP是经常变的。建议用COOKIES记录是否投过票,把COOKIES有效期设置得长一点。用SESSION也一样。匿名投票可作弊指数比较高的。

4、建议:
sql="select name,pass from tablename where name='"&name&"'"
然后把pass读到一个变量里如db_pass,然后判断pass是不是等于db_pass
当然在执行这个SQL以前要判断name这个值是否存在,不然要出错。
还有,执行SQL的时候判断一下recordcount是不是=0,如果=0,那么说明该用户不存在。
如果直接在SQL里:
sql="select name,pass from tablename where name='"&name&"' and pass='"&pass&"'"
然后判断recordcount是不是=0的话,很危险。
比方你有个用户名是abc
在登陆框里输入用户名:abc,密码:' or '1'='1
结果会如何呢?呵呵

1、除了用session还可以用 cookies response.cookies("name")=rs("name") 读取的时候 用 request.cookie("name")

2、插入数据可以用 ado的 addnew
rs.addnew
rs("name")=name
rs("pass")=password
rs.update

3、可以用ip验证,可以用 cookies 验证 投票之后写一个cookies 然后验证这个cookies是否有值。

4、是需要创建一个查询 不然怎么得到 name的值?
sql="select name,pass from table where name='"&request.from("name")&"' and password='"&request.form("password")&"'"
setrs=conn.execute(sql)
if rs.eof then
response.write("用户名或密码没有填写正确")
else
......
end if
在查询之前 要验证request.from("name")和 request.from("password")是否空值 是否合法。

另外 用cookies验证投票不是一个好方法。 拒绝cookies的话 可以反复投票