日期:2014-05-16  浏览次数:21023 次

验证信息不管用,好像和存入的数据没关系
数据库都建好了,也连上了,但是在验证时无论输什么都可以进入main.asp页面
<% if isempty(session("passed")) then
  session("passed")=false
  end if
if session("passed")=false then
UserName=request.form("UserName")
UserPwd=request.form("UaerPwd")
if UserName="" then
Errmsg="请输入用户名和密码"
else
Dim conn
set conn=server.CreateObject("adodb.connection")
conn.open "dsn=Discuss;uid=sa;pwd=sa"
strSql="select * from Users"
Dim rs
set rs=conn.execute(strSql)
   if rs.eof then
   session("Errmsg")="用户不存在"
else
  if UserPwd<>rs.fields("UserPwd") then
  session("Errmsg")="密码不正确"
  else 
     Errmsg=""
session("Passed")=True
session("UserName")=rs.fields("UserName")
session("Errmsg")=""
end if
end if
end if 
end if  
if not session("passed") then
   
%>
<html>
<body>

<script language="javascript">
function chkfield1(){
if (document.denglu.UserName.value==''){
window.alert("请输入用户名!")
return false
}
else
   if(document.denglu.UserPwd.value==''){
window.alert("请输入密码!")
return false
}
return true
}
</script>
<br><br>

<p align="center"><font color="#990033" size="15" face="隶书">身份验证</font></p>
<hr color="#993300" width="50%" />

<form method="post" action="main.asp"name="denglu" onsubmit="return chkfield1()">
<br>
<p align="center">用户名:&nbsp;<input type="text" name="UserName" size="20"></p>

<p align="center">密&nbsp;码:&nbsp;<input type="password" name="UserPwd" size="20"></p>
<center><input type="submit" value="确定" name="B1">&nbsp;&nbsp;
<input type="reset" value="重写" name="B2"></center></form>

<form method="post" action="zhuce.asp"name="zhuce"><center>
<input type="submit" value="注册新用户" name="B3"></center>
</form>

</body>
</html>
<%
response.End
end if
%>


------解决方案--------------------
我觉得你应注意两个地方:
1、程序逻辑:既然是登录页,说明该用户没有登录,你无须搞那么多无谓的判断if isempty(session("passed")) then
  session("passed")=false
  end if
直接显示登录页面就可以了:
<html>
<body>
<script language="javascript">
function chkfield1(){
if (document.denglu.UserName.value==''){
window.alert("请输入用户名!")
return false
}
else
   if(document.denglu.UserPwd.value==''){
window.alert("请输入密码!")
return false
}
return true
}
</script>
<br><br>

<p align="center"><font color="#990033" size="15" face="隶书">身份验证</font></p>
<hr color="#993300" width="50%" />

<form method="post" action="main.asp?action='login'"name="denglu" onsubmit="return chkfield1()">
<br>
<p align="center">用户名:&nbsp;<input type="text" name=