ACCESS转SQL后,后台无法登录的问题

szlalala 2006-12-28 04:55:24
经过调试,问题代码好像是出去这句:
sql="select * from [Admin] where password='"&password&"' and username='"&username&"'"

每次登录的错误提示是这里:
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用户名或密码错误!!!</li>"
也就是说没有检索到数据,郁闷!!
把问题代码中的where语句去掉后可登录,但有些功能实现不了

下面的是相关代码:
dim sql,rs
dim username,password,CheckCode
username=replace(trim(request("username")),"'","")
password=replace(trim(Request("password")),"'","")
CheckCode=replace(trim(Request("CheckCode")),"'","")
if UserName="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用户名不能为空!</li>"
end if
if Password="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>密码不能为空!</li>"
end if
if CheckCode="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>验证码不能为空!</li>"
end if
if session("CheckCode")="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>你登录时间过长,请重新返回登录页面进行登录。</li>"
end if
if CheckCode<>CStr(session("CheckCode")) then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>您输入的确认码和系统产生的不一致,请重新输入。</li>"
end if
if FoundErr<>True then
password=md5(password)
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from [Admin] where [password]='"&password&"' and [username]='"&username&"'"
rs.open sql,conn,1,3
'Set rs = Server.CreateObject("ADODB.Recordset")
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用户名或密码错误!!!</li>"
else
if password<>rs("Password") then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>用户名或密码错误!!!</li>"
else
rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR")
rs("LastLoginTime")=now()
rs("LoginTimes")=rs("LoginTimes")+1
rs.update
session("AdminName")=rs("username")
rs.close
set rs=nothing
call CloseConn()
Response.Redirect "Admin_Index.asp"
end if
end if
rs.close
set rs=nothing
end if
if FoundErr=True then
call WriteErrMsg()
end if
call CloseConn()
...全文
204 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebaby 2006-12-28
  • 打赏
  • 举报
回复
只要数据库中有对应的用户名和密码,有没有主键和步长值都应该可以登录,单从不能登录来看,主键和步长值不是必须的,最简单的办法,打开SQLSERVER的admin表看一下是否有对应的记录
szlalala 2006-12-28
  • 打赏
  • 举报
回复
OK,问题解决
就是数据类型的问题,出错之前检索所需的数据类型为TEXT,分析器的提示是这样的:
不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
于是,把检索的字段改成CHAR以后成功登录,谢谢各位!!
lj985 2006-12-28
  • 打赏
  • 举报
回复
自动增长的ID之类的
原表里有 自动编号吗
szlalala 2006-12-28
  • 打赏
  • 举报
回复
谢谢 shiliangdong(笑笑而过) 的提示
在分析器下找到点小问题,是在我转化字段类型的时候username,password字段设成了TEXT类型,在查询分析器里提示是无法把TEXT类型数据排序
我去试下!!!
stou 2006-12-28
  • 打赏
  • 举报
回复
打開表看下.在分析器裏用語句試下.
szlalala 2006-12-28
  • 打赏
  • 举报
回复
if rs.bof and rs.eof then
改成
if rs.eof then



试了,不行,我换成另外一个判断语句:
sql="select * from [Admin] where [username]='"&username&"'"也不行,刚开始怀疑是password字段进行MD5加密的问题,现在看来,也不是
szlalala 2006-12-28
  • 打赏
  • 举报
回复
主键有,lj985所说的标识指的是什么?
showlin 2006-12-28
  • 打赏
  • 举报
回复
if rs.bof and rs.eof then
改成
if rs.eof then
lj985 2006-12-28
  • 打赏
  • 举报
回复
同意楼上
也有可能是标识没有了
judge9999 2006-12-28
  • 打赏
  • 举报
回复
是不是数据库中的主键没有了

28,391

社区成员

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

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