登陆的简单问题■■■■■■■■■
登陆系统已经做好了,但是出现一个问题;假如我数据库如下:
name pass
1 1
2 2
3 3
共有三个用户,我用第一个用户名1 密码1 可以进入, 但是用第二个和第三个用户就不可以了。
应该怎样解决,sql="select * from book"
问题点数:10、回复次数:10Top
1 楼AntinomyArt(.)回复于 2005-04-04 14:53:44 得分 0
sql = "select * from book where name='"& request.form("name")&"' and pass = '"&request.form("pass")&"'"Top
2 楼ryuginka(一米八五的猪)回复于 2005-04-04 15:04:52 得分 1
sql = "select * from book where name='"& request.form("name")&"' and pass = '"&request.form("pass")&"'"
如果输入单引号就会出错了.Top
3 楼hinavy(风中的那滴血)回复于 2005-04-04 15:12:59 得分 2
二楼的登陆方法不可取,如果是网站后台,稍一不小心,就给人留下漏洞,
sqlstr="select * from user where username='"&request("user_name")&"'"
set rs=conn.execute(sqlstr)
if rs.eof then
response.write "无此用户名"
else
if rs("user_pass")=request("pass") then
response.write "Login Pass"
else
response.write "密码出错"
end if
end if
还要做一些对非法字符过滤之类的,这样用户登陆就安全了,呵Top
4 楼kgdfukfuk(★★★★★)回复于 2005-04-04 15:27:57 得分 0
<!--#include file="conn.asp" -->
<%
exec="select * from book where name='"&request("name")&"'"
Set rs = Server.CreateObject("adodb.RecordSet")
rs.Open exec, Conn, 1, 1
if rs.eof then
response.write "无此用户名"
else
if rs("pass")=request("pass") then
response.redirect "ok.asp"
else
response.write "密码出错"
end if
end if
%>
不管我输入什么,他都提示 无此用户名Top
5 楼xumw()回复于 2005-04-05 08:44:13 得分 2
if not rs.eof thenTop
6 楼heirychen(小老鼠)回复于 2005-04-05 11:07:43 得分 1
怎么会这样呢?你这样试试吧:
rs.Open exec, Conn, 1, 1
改为
rs.Open exec, Conn, 3,3
更改打开方式试试看,不过不知道可不可以。我以前有过问题后来这样就OK了:(Top
7 楼heirychen(小老鼠)回复于 2005-04-05 11:11:28 得分 1
exec="select * from book where name='"&request("name")&"'"
Set rs = Server.CreateObject("adodb.RecordSet")
这里换个方法,用command对象试试看。
server.createobject("adodb.command"),这样写理解起来简单一些,用得也方便,用不着分页嘛,就不用那么麻烦:)Top
8 楼BibbyZhang()回复于 2005-04-05 11:25:18 得分 1
楼上的,他只是查询数据库,好象不需要将
rs.Open exec, Conn, 1, 1
改为
rs.Open exec, Conn, 3, 3
Top
9 楼zyddamon(狗尾巴草)回复于 2005-04-05 11:38:57 得分 2
<!--#include file="conn.asp" -->
<%
exec="select * from book where name='"&request("name")&"'"
Set rs = Server.CreateObject("adodb.RecordSet")
rs.Open exec, Conn, 1, 3
if not rs.eof then
if rs("pass")=request("pass") then
response.redirect "ok.asp"
else
response.write "密码出错"
end if
else
response.write "无此用户名"
end if
%>
准行Top
10 楼wxf0104(西方失败007)回复于 2005-04-05 12:11:08 得分 0
楼上的没错,只是在传递值的时候加一些过滤,避免有漏洞,OK~~Top




