|
这样写有点小问题,不很错。而且注意有注入漏洞。
没有核对密码。
注意你的sql语句生成方式,在表里查询所有名称为什么什么什么的记录,按说要么没有,要么有一条,那么下面就不应该用do循环了,何况那个if肯定是真的(因为你搜记录的条件是他们相等),而是直接判断Rs.BOF or Rs.EOF,如果是真,那么用户不存在,如果是假,继续核对密码,Rs("password")=userpwd,如果相等,那么放行,如果不等,就是密码错误。
我简单改一下,我没有考虑注入漏洞,假定表里密码明文字段为password
<%
dim sql,rs,username,userpwd
username=request.Form("caccount")
userpwd=request.Form("cpassword")
sql="select * from T_User where username='" & username & "' And password='" & userpwd & "'"
set rs=server.CreateObject("adodb.recordset")
rs.Open sql,conn,1,3
If Rs.BOF or Rs.EOF Then
Response.Write "登录失败" '可能是用户名错误,也可能是密码错误,总之是没有满足用户名和密码都符合的记录
Response.End
End If
Response.Redirect "index.asp?info=登录成功"
%> |
|