怎么会这样呢?各位高手帮我看一看

iwo99 2001-12-20 11:41:32
各位为高手我写了一个用户校验程序,源码如下,我不知道为什么,当输入用户名对,密码错时会显示错误提示,但是输入用户名错时就出现“HTTP 500 - 内部服务器错误
”我不知道怎么搞好!各位高手帮一下我!


<!-- #include file="conn.asp"-->

<%
username=request("username")
userpass=request("password")
sql="select * from users where username='"&username&"'"

set rs=conn.execute(sql)
If username = rs("UserName") and userpass = rs("password") Then
session("user")=username
session("pass")=userpass
response.redirect "main.asp"
Else
response.write "<center><font size=5 color=red>你的账号或密码不符,请检查一下!</font>"
rs.close
conn.close
set rs= nothing
set conn= nothing
End If
%>
...全文
127 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemontree197977 2001-12-20
  • 打赏
  • 举报
回复
If (username = rs("UserName")) and (userpass = rs("password")) Then
lazywolf 2001-12-20
  • 打赏
  • 举报
回复
<!-- #include file="conn.asp"-->

<%
username=request("username")
userpass=request("password")
sql="select * from users where username='"&username&"'"
set rs=conn.execute(sql)
if not rs.eof
If username = rs("UserName") and userpass = rs("password") Then
session("user")=username
session("pass")=userpass
response.redirect "main.asp"
response.end
end if
end if
response.write "<center><font size=5 color=red>你的账号或密码不符,请检查一下!</font>"
%>
iwo99 2001-12-20
  • 打赏
  • 举报
回复
错误信息是这样的
错误 '80020009'
发生意外。

/identity.asp,行9
iwo99 2001-12-20
  • 打赏
  • 举报
回复
各位高手的办法我都试过了,还是不行啊!我现在将conn.asp的源码和错误信息也贴出来

<%
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
conn.open "driver={SQL Server};Server=192.168.0.2;uid=sa;pwd=;database=book"
%>

该页无法显示
您要访问的页有问题,无法显示该页。

--------------------------------------------------------------------------------

请尝试以下操作:

打开 192.168.0.99 主页,然后查找指向您感兴趣信息的链接。
单击刷新按钮,或以后再试。

单击搜索,寻找 Internet 上的信息。
也可查看相关站点列表。




HTTP 500 - 内部服务器错误
Internet Explorer

注明 :192.168.0.2 是服务器地址
192。168。0。99 是后添加ip地址

lemontree197977 2001-12-20
  • 打赏
  • 举报
回复

你将conn.asp的源码贴出来,

再将错误信息也贴出来!
qisanyou 2001-12-20
  • 打赏
  • 举报
回复
<%@ Language=VBScript %>
<!--#include file=conn.asp -->
<%
username=trim(Request.Form("username"))
password=trim(Request.Form("password"))

username=replace(username,"'","''")
password=replace(password,"'","''")

set rs=server.CreateObject ("ADODB.RecordSet")
rs.Source="select id from Admin where username='" & username & "' and password='" & password & "'"
rs.Open rs.Source,conn,1,1

if not rs.EOF then
session("username")=username
session("password")=password
Response.Redirect "main.asp"
else
Response.Write "请核对您的用户名和密码!"
Response.End
end if
%>
yigenhuochai 2001-12-20
  • 打赏
  • 举报
回复
先检测记录集是否为空
jhysky 2001-12-20
  • 打赏
  • 举报
回复
最好在接收值的时后也加Trim
jhysky 2001-12-20
  • 打赏
  • 举报
回复
在rs("UserName") 和rs("password") 前家Trim
即:
Trim(rs("UserName"))和Trim(rs("password"))
iwo99 2001-12-20
  • 打赏
  • 举报
回复
各位高手我明白了是因为我没有判断rs是否为空
多谢你们!
IT写轮眼 2001-12-20
  • 打赏
  • 举报
回复
当用户名不对时,rs为空,If username = rs("UserName") and userpass = rs("password") Then .....就会出错,应该先判断rs是否为空
<%
username=request("username")
userpass=request("password")
sql="select * from users where username='"&username&"'"

set rs=conn.execute(sql)

if not rs.eof then
If username = rs("UserName") and userpass = rs("password") Then

session("user")=username
session("pass")=userpass
conn.close
set rs= nothing
set conn= nothing
response.redirect "main.asp"

Else

response.write "<center><font size=5 color=red>你密码不符,请检查一下!</font>"

conn.close
set rs= nothing
set conn= nothing
End If
else
response.write "用户名不存在,请注册!"

end if

%>



luket 2001-12-20
  • 打赏
  • 举报
回复
你的用户名或密码是不是有特殊字符.你可以这样看看:把出错文件里面的代码全部剪掉然后随便输入几个字符如"aaa"然后刷新,这时网页应该显示"aaa"然后把刚才的代码又重新粘贴过来.然后在刷新,一般情况下会显示出出错的地方.可能说得很罗嗦,对这种不出现提示的错误我一般就是这样干的.
heman2000 2001-12-20
  • 打赏
  • 举报
回复
“是不是redirect的那个页面有问题呀 ”
是呀,这也有可能的呀
free_doctor 2001-12-20
  • 打赏
  • 举报
回复
是不是redirect的那个页面有问题呀
heman2000 2001-12-20
  • 打赏
  • 举报
回复
<!-- #include file="conn.asp"-->

<%
username=trim(request("username"))
userpass=trim(request("password"))
if username="" or userpass="" then
response.write"各填充项不能为空!"
else
sql="select * from users where username='"&username&"'"
set rs=conn.execute(sql)
If userpass = rs("password") Then
session("user")=username
session("pass")=userpass
response.redirect "main.asp"
Else
response.write "<center><font size=5 color=red>你的账号或密码不符,请检查一下!</font>"
rs.close
conn.close
set rs= nothing
set conn= nothing
End If
end if
%>

如果conn.asp没问题的话,应该是没问题。
检查一下WEB服务器环境。
flyingghost 2001-12-20
  • 打赏
  • 举报
回复
先判断用户名查询后rs中有没有记录!!!没有的话你使用当然会出错了!
if not rs.eof then
''''判断密码
else
response.write "用户名不存在!"
end if

28,405

社区成员

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

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