请各位帮忙(急)

CPO 2004-04-06 11:45:06
我想要做网站上那种找会密码的功能页面,要怎么实现啊,找了很多例子都不是太明白,哪位有空教教我吧,谢谢,帮着写个例子,我好学习学习。谢谢,在线等。
...全文
3 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
CPO 2004-04-07
我再顶
回复
CPO 2004-04-06
自己顶,哪位帮我来看看啊
回复
CPO 2004-04-06
这里是find.asp,通过find.htm上填写的用户名存在与否,跳转到find2.htm(另建的一个新页,现在觉得有些麻烦).

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("db\db1.mdb")
us=trim(request.form("user"))

exec="select question from user where user='"&us&"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1

if not rs.eof then
response.redirect "find2.htm"
end if

rs.close
set rs=nothing
conn.close
set conn=nothing
%>
而到了find2.htm,要做的是,显示该用户的问题,然后让填写答案,答案正确了,显示该用户密码。就是不知道怎么写;
要么就是,在一个ASP页中(find.asp)连续做三件事(输入用户、显示问题、显示密码)
请各位帮我想想
回复
CPO 2004-04-06
还不用这么麻烦,提示问题,答案,邮箱都添好了。
就是想作个找回密码页面,第一页(第一步)填用户;在第二页(第二步)输出该用户的提示问题,在下面让输入问题答案;第三页(第三步)判断之后,输出密码。
找了好多例子,都没有说太明白
回复
芝城游侠 2004-04-06
根据用户提交的信息来判断是否是合法用户,一般在注册时会让用户填写忘记密码的提示问题和提示答案等信息,当用户要找回密码时,验证这些信息是否正确,如正确则告知密码。

最简单的方法就是直接将密码发至用户注册的邮箱中。但这样必须在注册时提醒用户使用正确邮箱地址(最好是系统生成密码发至用户邮箱)。
回复
dout 2004-04-06
帮顶
回复
popcode 2004-04-06
哪里看不懂可以提出来
回复
CPO 2004-04-06
我顶
回复
CPO 2004-04-06
魔术师,我做了如下改动,你看看对不对啊

1. //find.asp

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("db\db1.mdb")

us=trim(request.form("user"))

exec="select user,answer,question from user where user='"&us&"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1

if not rs.eof then
session("name")=rs(0)
session("answer")=rs(1) '生产会话变量
session("question")=rs(2) '生成会话变量
response.redirect "find2.asp"
else
%>
"没有这个用户,按此<a href="find.htm">返回</a>"
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
end if
%>

2. //find2.asp

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("db\db1.mdb")
%>
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p> </p>
<div align="center"><br>
<br>
<br>
第三步<br>
<br>
</div>
<form name="form1" method="post" action="find2.asp">
<p align="center">提示问题:<%=session("question")%></p> //这里没有显示出来,
<p align="center">问题答案: //前面写错了什么吗?
<input type="text" name="answ">
</p>
<p align="center">
<%
answer=trim(request.form("answ"))

exec="select password from user where user='"&name&"' and answer='"&answer&"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1

if rs.eof then
%>
"答案错误,按此<a href="find2.asp">返回</a>
<%
else
response.write "rs(0)"
end if

rs.close
set rs=nothing
conn.close
set conn=nothing
%>
<input type="submit" name="Submit" value="完 成">
</p>
</form>
<p> </p>
<p align="center"><a href="index.htm">返回首页</a></p>
</body>
</html>

现在的情况是,在执行完find.asp后报错

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
/web/find2.asp, 第 29 行

请指教,各位帮我看看,在线等
回复
dayanmao 2004-04-06
up
回复
iloveyaner 2004-04-06
页面findpwstep1.asp
<%
if request("user") <> "" then
user=request("user") '过滤特殊字符
……
sql ="select answer,question from user where userid='"&user&"'"
…… '执行sql语句,生产记录集rs
if rs.eof and rs.bof then '如果输入的用户不存在。
response.write("<script language=javascript>alert('用户名["&user&"]不存在!');window.location='findpwstep1.asp';</script>")
response.end()
else
session("answer")=rs(0) '生产会话变量
session("question")=rs(1) '生成会话变量
response.redirect "findpwstep2.asp"
end if
%>

将session("question")作为显示的提示问题在页面
session("answer")用于与客户的输入验证!!
回复
IEEE_China 2004-04-06
工作中,不能实时的调程序。
抱歉。
CPO你自己调一下。
如果出错,就把错误信息贴出来。

回复
CPO 2004-04-06
自己顶
回复
CPO 2004-04-06
根据楼上的提示,我做了如下改动:
1. //find.htm 中用户输入框的属性

<input type="text" name="user">

2. //它提交的find.asp

us=trim(request.form("user"))
session("User_Name")=us

exec="select question from user where user='"&us&"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1

if not rs.eof then
session("ques")=rs("question") //是不是ques也要做session啊,我这样改了
response.redirect "find2.htm"
else
rs.close
set rs=nothing
conn.close
set conn=nothing
end if

3. //到了find2.htm

<form name="form1" method="post" action="find2.asp">
<p align="center">提示问题:<%=rs("question")%></p> //表单中作了这样的修改,但是
<p align="center">问题答案: //并没有显示
<input type="text" name="answ">
</p>
<p align="center">
<input type="submit" name="Submit" value="完 成">
</p>
</form>

4. //find2.asp中

name=session("User_Name") //这样写对不对啊?
answer=request.form("answ")

sql="select password from user where user='"&name&"' and answer='"&answer&"'"
set rs=conn.execute(sql)

if rs.eof then
response.write "答案错误!" & "<br>"
按此<a href="find.asp" target="_self">返回</a>
%>
<%else
response.write "rs("password")"
end if
%>

总体情况就是这样,哪里还有错啊,各位帮我看看,多谢
回复
IEEE_China 2004-04-06
你可以在find页面将 用户名设成一个session变量:session("User_Name")=User_Name
你在find2页面做一个表单,
在表单里用来 显示“用户问题”的地方 显示“提问问题(<%=rs("question")%>)”,
然后在问题下边加一个文本框,让用户输入答案(answer),
提交后的后台处理程序中:
<%
User_Name=session("User_Name")
answer=request.form("answer")
%>
<%
sql="select password from user where UserName='"&User_Name&"' and answer='"&answer&"'"
set rs=conn.execute(sql)
%>
<%if rs.eof then%>
<%response.write "答案错误!" & "<br>"%>
按此<a href="find.asp" target="_self">返回</a>
<%else%>
<%=rs("password")%>
<%end if%>
我简写了,该加的数据库连接及页面修饰自己加。
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告