| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:一个页面能有多个Recordset对象吗?
只看楼主 加入收藏
星梦缘
Rank: 1
来 自:江西
等 级:新手上路
帖 子:413
专家分:0
注 册:2007-1-16
收藏
 问题点数:0 回复次数:5 
一个页面能有多个Recordset对象吗?


-----------------代码主要实现,验证用户名和密码的正确性
=====================并实现。确认用户权限的验证 manage =1为管理员

<!--#include file="conn.asp"-->
<%
dim username,userpass
'接收表单数据
username=trim(replace(request("username"),"'",""))
userpass=trim(Request.Form("userpass"))
'取得客户端IP
userip=Request.ServerVariables("REMOTE_ADDR")
%>

<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql="Select * From users where username='" &username&"'"&"and userpass='"&userpass&"'"
rs.Open sql, conn, 3,3

%>
<%if rs.bof or rs.eof then %>
<script language=javascript>
alert( "错误:此用户名不存在!" );
location.href = "javascript:history.back()"
</script>
<%else if userpass<>rs("userpass") then%>
<script language=javascript>
alert("错误:您的密码不正确!");
location.href = "javascript:history.back()"
</script>
<%rs=close
set rs=nothing
%>
<%else ' 登录成功%>

<%
'------------------------新建 rs2查询用户权限
Set rs2 = Server.CreateObject("ADODB.Recordset")
sql2="Select manage From users where username='"&username&"'"
rs2.Open sql2, conn, 3,3
'记录修改最后登录时间and IP
sql="update users set LastLogintime=now(),LastLoginip='" &userip& "' where username='" &username&"'"
conn.execute(sql)
%>
<%
'验证成功以后,就可以建立session对象咯~~
if rs("manage")=1 then '管理员权限
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "manage.asp"

else
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "select.asp"
end if


rs2.close
set rs2=nothing

set conn=nothing
%>
</script>
<%end if%>

=========请教一下,这样设计有问题吗?还有更简单,经典的方法实现相同功能吗=======

[此贴子已经被作者于2007-11-11 2:21:15编辑过]

搜索更多相关主题的帖子: Recordset 对象 页面 
2007-11-11 02:18
cainiao158
Rank: 1
等 级:新手上路
威 望:1
帖 子:157
专家分:0
注 册:2007-9-14
收藏
得分:0 

好像有点问题

Set rs = Server.CreateObject("ADODB.Recordset")
sql="Select * From users where username='" &username&"'"&"and userpass='"&userpass&"'"
rs.Open sql, conn, 3,3

%>
<%if rs.bof or rs.eof then %>
<script language=javascript>
alert( "错误:此用户名不存在!" ); location.href = "javascript:history.back()"
</script>

如果你要判断用户名不存在 把上面的sql语句改为 sql="Select * From users where username='" &username&"'"

你要先判断用户名是否存在,如果你加上 userpass='"&userpass&"'" 就等于直接判断用户名和密码正不正确!!

然后再

else
if userpass<>rs("userpass") then

<script language=javascript>
alert("错误:您的密码不正确!");
location.href = "javascript:history.back()"
</script>
else
登陆成功 然后再给他赋值session






一个页面可以有多个recordset对象! 只要对象名不同就可以了 就像上面的那个rs1和rs2一样


要想飞的更高,就把地平线忘掉!
2007-11-11 07:45
星梦缘
Rank: 1
来 自:江西
等 级:新手上路
帖 子:413
专家分:0
注 册:2007-1-16
收藏
得分:0 

谢谢楼上指点:
===============================我自己修改了一下代码=====
<!--#include file="conn.asp"-->
<%
dim username,userpass
'接收表单数据
username=trim(replace(request("username"),"'",""))
userpass=trim(Request.Form("userpass"))
'取得客户端IP
userip=Request.ServerVariables("REMOTE_ADDR")
%>

<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql="Select * From users where username='" &username&"'"
rs.Open sql, conn, 3,3

%>
<%if rs.bof or rs.eof then %>
<script language=javascript>
alert( "错误:此用户名不存在!" );
location.href = "javascript:history.back()"
</script>
<%else if userpass<>rs("userpass") then%>
<script language=javascript>
alert("错误:您的密码不正确!");
location.href = "javascript:history.back()"
</script>
<%else ' 登录成功%>

<%Set rs2 = Server.CreateObject("ADODB.Recordset")
sql2="Select manage From users where username='"&username&"'"
rs2.Open sql2, conn, 3,3
这些完全多余~~~~~删除了··

'记录修改最后登录时间and IP
sql="update users set LastLogintime=now(),LastLoginip='" &userip& "' where username='" &username&"'"
conn.execute(sql)
%>
<%
'验证成功以后查询用户权限,就可以建立session对象咯~~
if rs("manage")=1 then '管理员权限
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "manage.asp"

else
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "select.asp"
end if


rs.close
set rs=nothing
set conn=nothing
%>
</script>
<%end if%>
------------------将原来的Set rs2 = Server.CreateObject("ADODB.Recordset")删除------------------
现在理解了sql="Select * From users where username='" &username&"'" 真正的含义:已经查询出了用户权限信息


show出自己 活力四射!
2007-11-11 12:05
cainiao158
Rank: 1
等 级:新手上路
威 望:1
帖 子:157
专家分:0
注 册:2007-9-14
收藏
得分:0 

对 那个rs2是多余的


要想飞的更高,就把地平线忘掉!
2007-11-11 16:49
cainiao158
Rank: 1
等 级:新手上路
威 望:1
帖 子:157
专家分:0
注 册:2007-9-14
收藏
得分:0 
以下是引用星梦缘在2007-11-11 12:05:06的发言:

谢谢楼上指点:
===============================我自己修改了一下代码=====
<!--#include file="conn.asp"-->
<%
dim username,userpass
'接收表单数据
username=trim(replace(request("username"),"'",""))
userpass=trim(Request.Form("userpass"))
'取得客户端IP
userip=Request.ServerVariables("REMOTE_ADDR")
%>

<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql="Select * From users where username='" &username&"'"
rs.Open sql, conn, 3,3

%>
<%if rs.bof or rs.eof then %>
<script language=javascript>
alert( "错误:此用户名不存在!" );
location.href = "javascript:history.back()"
</script>
<%else if userpass<>rs("userpass") then%>
<script language=javascript>
alert("错误:您的密码不正确!");
location.href = "javascript:history.back()"
</script>
<%else ' 登录成功%>

<%Set rs2 = Server.CreateObject("ADODB.Recordset")
sql2="Select manage From users where username='"&username&"'"
rs2.Open sql2, conn, 3,3
这些完全多余~~~~~删除了··

'记录修改最后登录时间and IP
sql="update users set LastLogintime=now(),LastLoginip='" &userip& "' where username='" &username&"'"
conn.execute(sql)
%>
<%
'验证成功以后查询用户权限,就可以建立session对象咯~~
if rs("manage")=1 then '管理员权限
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "manage.asp"

else
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "select.asp"
end if


rs.close
set rs=nothing
set conn=nothing
%>
</script>
<%end if%>
------------------将原来的Set rs2 = Server.CreateObject("ADODB.Recordset")删除------------------
现在理解了sql="Select * From users where username='" &username&"'" 真正的含义:已经查询出了用户权限信息

if rs("manage")=1 then '管理员权限
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "manage.asp"

else
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "select.asp"
你这样给他们赋值session 好像管理员和普通用户没有明显区别 在管理员在多加上一条,用于区分管理员和普通用户

if rs("manage")=1 then '管理员权限
session("admin)=1
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "manage.asp"

else
session("username")=rs("username")
session("userpass")=rs("userpass")
response.redirect "select.asp"

以后在各个页面用

if session("admin")=1 then
管理员
else
普通用户
end if

来进行判断和限制!!!


要想飞的更高,就把地平线忘掉!
2007-11-11 17:57
星梦缘
Rank: 1
来 自:江西
等 级:新手上路
帖 子:413
专家分:0
注 册:2007-1-16
收藏
得分:0 
谢谢朋友

show出自己 活力四射!
2007-11-11 22:25
快速回复:一个页面能有多个Recordset对象吗?
数据加载中...
 
   



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

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