| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 847 人关注过本帖
标题:为什么只能登陆一个用户!
只看楼主 加入收藏
中国男孩
Rank: 1
等 级:新手上路
帖 子:291
专家分:7
注 册:2006-3-19
结帖率:0
收藏
 问题点数:0 回复次数:9 
为什么只能登陆一个用户!

我的一个注册程序,不知道错在哪里?
我注册了好多用户,但是登陆时,却只能登陆一个用户,而且是第一个注册的那个用户:
代码如下:
<!--#Include file="linkdata.asp"-->
<!--#Include file="hnzjzz_md5.asp"-->
<%
if request("action")="login" then Call login()
if request("action")="quit" then Call quit()
Sub login()
name=md5(Replace(Trim(Request.form("user_name")),"","'"))
pass=md5(Replace(Trim(Request.form("user_pass")),"","'"))

Set rs= Server.CreateObject("ADODB.Recordset")
sql="select id,user_name,user_pass from users"
rs.open sql,conn,1,1
if name<>rs("user_name") then
Response.Write "<script language=javascript>alert('用户不正确!');self.location=(""login.asp"");</script>"
elseif pass<>rs("user_pass") then
Response.Write "<script language=javascript>alert('密码不正确!');self.location=(""login.asp"");</script>"
else
Response.Write "<script language=javascript>alert('登陆成功!');self.location=(""Myzone.asp"");</script>"
Session("user_name")=rs("user_name")
end if
End Sub

Sub quit()
Session("user_name")=""
Response.Write "<script language=javascript>alert('退出成功!');self.location=(""login.asp"");</script>"
End Sub
%>

搜索更多相关主题的帖子: login 用户 form name 
2007-10-29 16:16
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
sql="select id,user_name,user_pass from users where user_name=" & name
rs.open sql,conn,1,1
if rs.eof and rs.bof then
Response.Write "<script language=javascript>alert('用户不正确!');self.location=(""login.asp"");</script>"
elseif pass<>rs("user_pass") then
Response.Write "<script language=javascript>alert('密码不正确!');self.location=(""login.asp"");</script>"
else
Response.Write "<script language=javascript>alert('登陆成功!');self.location=(""Myzone.asp"");</script>"
Session("user_name")=rs("user_name")
end if
rs.close
set rs=nothing


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-29 16:38
中国男孩
Rank: 1
等 级:新手上路
帖 子:291
专家分:7
注 册:2006-3-19
收藏
得分:0 
可,还是不行啊

我很想把计算机学好!!
2007-10-29 16:52
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
说说现象撒,光一句“不行”我怎么帮你。。

顺便说说,用户名就没必要用md5加密了吧,这样多麻烦

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-29 17:04
tianyu123
Rank: 1
等 级:新手上路
威 望:2
帖 子:576
专家分:0
注 册:2007-8-26
收藏
得分:0 
以下是引用中国男孩在2007-10-29 16:16:14的发言:

我的一个注册程序,不知道错在哪里?
我注册了好多用户,但是登陆时,却只能登陆一个用户,而且是第一个注册的那个用户:
代码如下:
<!--#Include file="linkdata.asp"-->
<!--#Include file="hnzjzz_md5.asp"-->
<%
if request("action")="login" then Call login()
if request("action")="quit" then Call quit()
Sub login()
name=md5(Replace(Trim(Request.form("user_name")),"","'"))
pass=md5(Replace(Trim(Request.form("user_pass")),"","'"))

Set rs= Server.CreateObject("ADODB.Recordset")
sql="select id,user_name,user_pass from users"
rs.open sql,conn,1,1
if name<>rs("user_name") then
Response.Write "<script language=javascript>alert('用户不正确!');self.location=(""login.asp"");</script>"
elseif pass<>rs("user_pass") then
Response.Write "<script language=javascript>alert('密码不正确!');self.location=(""login.asp"");</script>"
else
Response.Write "<script language=javascript>alert('登陆成功!');self.location=(""Myzone.asp"");</script>"
Session("user_name")=rs("user_name")
end if
End Sub

Sub quit()
Session("user_name")=""
Response.Write "<script language=javascript>alert('退出成功!');self.location=(""login.asp"");</script>"
End Sub
%>

像你这样的写法,也可以实现登陆的验证!但你没有写循环,指针没有移动,始终在第一条记录!所以只能登陆一个

用户,并且是第一个注册的用户,即第一个记录!

像你这样的写法效率也是低的!因为它要读取数据库中的所有数据!

建议使用这样的写法:

<!--#Include file="linkdata.asp"-->
<!--#Include file="hnzjzz_md5.asp"-->
<%
if request("action")="login" then Call login()
if request("action")="quit" then Call quit()
Sub login()
name=md5(Replace(Trim(Request.form("user_name")),"","'"))
pass=md5(Replace(Trim(Request.form("user_pass")),"","'"))

Set rs= Server.CreateObject("ADODB.Recordset")
sql="select id,user_name,user_pass from users where user_name='"& name &"'"
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
if pass<>rs("user_pass") then
Response.Write "<script language=javascript>alert('密码不正确!');self.location=(""login.asp"");</script>"
else
Response.Write "<script language=javascript>alert('登陆成功!');self.location=(""Myzone.asp"");</script>"
Session("user_name")=rs("user_name")
end if
else
Response.Write "<script language=javascript>alert('用户不正确!');self.location=(""login.asp"");</script>"
end if
End Sub

Sub quit()
Session("user_name")=""
Response.Write "<script language=javascript>alert('退出成功!');self.location=(""login.asp"");</script>"
End Sub
%>




改变一切,须从改变观念开始!
2007-10-29 18:29
中国男孩
Rank: 1
等 级:新手上路
帖 子:291
专家分:7
注 册:2006-3-19
收藏
得分:0 
回复:(tianyu123)以下是引用中国男孩在2007-10-29 ...

呵呵,谢谢大侠,我按照你的方法,去做,可以了,
但是,我不懂,那程序的意思,你能帮我翻译一下吗?
小弟,谢了


我很想把计算机学好!!
2007-11-01 17:44
天涯听雨
Rank: 2
来 自:东莞
等 级:论坛游民
威 望:4
帖 子:497
专家分:64
注 册:2007-8-25
收藏
得分:0 
用户名也要加密?连自己在后台也不知道注册哪些用户名

从明天起做幸福的人,喂马劈柴周游世界!
2007-11-01 19:43
qhscqb
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-2-3
收藏
得分:0 
回复:(中国男孩)回复:(tianyu123)以下是引用中国...
'关键是下面这一句,它是SQL的条件查询语句
'select 字段 from 表 where 条件
sql="select id,user_name,user_pass from users where user_name='"& name &"'"
'上面的语句表示从users表中查询用户名(usr_name)是否为用户名变量name
'执行查询
rs.open sql,conn,1,1
'如果数据库中存在此用户
if not(rs.bof and rs.eof) then
'则判断密码是否正确
if pass<>rs("user_pass") then
'不正确
Response.Write "<script language=javascript>alert('密码不正确!');self.location=(""login.asp"");</script>"
'正确
else
Response.Write "<script language=javascript>alert('登陆成功!');self.location=(""Myzone.asp"");</script>"
Session("user_name")=rs("user_name")
end if
'数据库中不存在此用户
else
Response.Write "<script language=javascript>alert('用户不正确!');self.location=(""login.asp"");</script>"
end if

编程快乐,快乐编程! 没有最好,只有更好!
2007-11-02 09:34
huoqilin
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-7-20
收藏
得分:0 
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select id,user_name,user_pass from users where user_name='"&name&"' and user_pass='"&pass&"'"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
Response.Write "<script language=javascript>alert('用户名或者密码不正确!');self.location=(""login.asp"");</script>"
else
Response.Write "<script language=javascript>alert('登陆成功!');self.location=(""Myzone.asp"");</script>"
Session("user_name")=rs("user_name")
end if

2007-11-02 11:57
中国男孩
Rank: 1
等 级:新手上路
帖 子:291
专家分:7
注 册:2006-3-19
收藏
得分:0 

呵呵,谢谢,我懂了


我很想把计算机学好!!
2007-11-02 20:24
快速回复:为什么只能登陆一个用户!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017033 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved