登陆的简单问题■■■■■■■■■

kgdfukfuk 2005-04-04 02:49:25
登陆系统已经做好了,但是出现一个问题;假如我数据库如下:
name pass
1 1
2 2
3 3

共有三个用户,我用第一个用户名1 密码1 可以进入, 但是用第二个和第三个用户就不可以了。
应该怎样解决,sql="select * from book"

...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxf0104 2005-04-05
  • 打赏
  • 举报
回复
楼上的没错,只是在传递值的时候加一些过滤,避免有漏洞,OK~~
zyddamon 2005-04-05
  • 打赏
  • 举报
回复
<!--#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
%>

准行
BibbyZhang 2005-04-05
  • 打赏
  • 举报
回复
楼上的,他只是查询数据库,好象不需要将

rs.Open exec, Conn, 1, 1

改为

rs.Open exec, Conn, 3, 3
heirychen 2005-04-05
  • 打赏
  • 举报
回复
exec="select * from book where name='"&request("name")&"'"
Set rs = Server.CreateObject("adodb.RecordSet")

这里换个方法,用command对象试试看。
server.createobject("adodb.command"),这样写理解起来简单一些,用得也方便,用不着分页嘛,就不用那么麻烦:)
heirychen 2005-04-05
  • 打赏
  • 举报
回复
怎么会这样呢?你这样试试吧:

rs.Open exec, Conn, 1, 1

改为
rs.Open exec, Conn, 3,3

更改打开方式试试看,不过不知道可不可以。我以前有过问题后来这样就OK了:(
xumw 2005-04-05
  • 打赏
  • 举报
回复
if not rs.eof then
kgdfukfuk 2005-04-04
  • 打赏
  • 举报
回复
<!--#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
%>

不管我输入什么,他都提示 无此用户名
hinavy 2005-04-04
  • 打赏
  • 举报
回复
二楼的登陆方法不可取,如果是网站后台,稍一不小心,就给人留下漏洞,

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


还要做一些对非法字符过滤之类的,这样用户登陆就安全了,呵
ryuginka 2005-04-04
  • 打赏
  • 举报
回复
sql = "select * from book where name='"& request.form("name")&"' and pass = '"&request.form("pass")&"'"
如果输入单引号就会出错了.
AntinomyArt 2005-04-04
  • 打赏
  • 举报
回复
sql = "select * from book where name='"& request.form("name")&"' and pass = '"&request.form("pass")&"'"

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧