ASP中登入系统后,修改密码的问题~~请高手指点

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:19:59
1行 <!--#include file="conn.asp"-->
2行 <!--#include file="session_check.asp"-->
<!--#include file="md5.asp"-->
set rs=server.CreateObject("adodb.recordset")
sql="select * from [admin] where adminname="&session("adminname")&" and password="&md5(trim(request("yuanpassword")))
7行 rs.open sql,conn,1,3
if not rs.eof then
rs("password")=md5(trim(request("newpassword")))
rs.update
rs.close
set rs=nothing
response.Write"<p align='center'>密码修改成功!</p>"
elseif rs("password")<>md5(trim(request("yuanpassword"))) then
%>
<script language="javascript">
alert(对不起,原密码输入错误!)
history.back()
</scri

这是个SQL语句的问题,将其改成:
sql="select * from [admin] where adminname='"&session("adminname")&"' and password='"&md5(trim(request("yuanpassword")))&"'"
就可以了。记得在SQL语句中字符串必须用引号引起来;数字可不用;True及False为常量,不能放在引号内。

sql=\"select * from [admin] where adminname=\"&session(\"adminname\")&\" and password=\"&md5(trim(request(\"yuanpassword\")))&\"\" 改成
sql=\"select * from [admin] where adminname=\'\"&session(\"adminname\")&\"\' and password=\'\"&md5(trim(request(\"yuanpassword\")))&\"\'\" 原因有3:原因1:SQL语句中,条件里的表达式等号两边不能为空,你以前的语句中,如果获取的变量值为空,那么这个语句就会产生你所发现的错误,,如果你需要某个条件为空则可以用单引号表示;
原因2:SQL语句条件判断表达式里比较字符型的值必须包含在一组单引号内,整形,布尔型(true,false)则不用。
原因3:sql=\"...password=\"&md5(trim(request(\&