| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2653 人关注过本帖
标题:用户登入后修改个人资料的问题?
只看楼主 加入收藏
bluezcheng
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-2
收藏
 问题点数:0 回复次数:20 
用户登入后修改个人资料的问题?
我想要写一个用户登入后,然后按修改个人资料的代码,可是却出现错误,请问各位高手可以帮帮忙看看小弟的代码哪里出错吗?

我是这样写的。。。

登录页index.asp
<%if session("udi")="" then%>
<table border="0" width="800" align=center>
<form name="form1" method="post" action="process1.asp" onSubmit="Javascript: return check_Null();">
<tr>
<td width="70%" align=center>
<fieldset>

<legend>用户登录</legend>
用户名: <input type="text" name="nm" size="12"  maxlength="25" />
密码: <input type="password" name="pw" size="12" maxlength="32" />
<input type="submit" value="登录">  | <a href="register.asp">立刻注册</a>
</td>
</form>
<td align="right" width="30%"><a href="student.asp"><img src="student.png" width="95" height="84" /></a>
您是游客  <%udi=session("udi")%>
</td>
</tr>

<%else%>


<table border="0" width="800" align=center>
<tr>
<td width="30%" align=left>
<fieldset>
<legend>用户登录</legend>
<a href="modified.asp?id=<%=session("uid")%>">编辑个人资料</a>
</td>
<td width="30%" align=center>
<a href="student.asp"><img src="student.png" width="95" height="84" /></a>
</td>
<td width="40%" align=center>
欢迎您<%=session("udi")%><a href="logout.asp">Logout</a>
</td>
</tr>
</table>
<%end if%>

修改个人资料页modified.asp
<%
id=request("id")

set rs=server.createobject("adodb.recordset")
sql="select * from student where username="&id
rs.open sql,conn,3,2
%>

错误信息
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'username='.
/modified.asp, line 22

请问我应该怎样写才对呢?
小弟是个菜鸟,第一次在这里发问题,希望各位高手能够多多指教一下小弟,先说声谢谢!

[[it] 本帖最后由 bluezcheng 于 2008-10-24 01:16 编辑 [/it]]
搜索更多相关主题的帖子: ASP的问题 登入 资料 用户 
2008-10-17 01:02
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
你session传递的是id 而你查询数据库的字段名是 username ,难道你的用户表里的username是ID字段吗
你的ID传过来的是什么值呢?username又是什么字段呢?

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-17 08:04
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
是的,2楼说的不错。
看你的代码:
sql="select * from student where username="&id
这个数据库读取格式,说明id是自动编号的,如果id是文本字段,就应该这样:
sql="select * from student where username='"&id&"'"
假如这个id真的是文本字段,这不是和自动id同名了吗? 当然会出错的。
最后,这个错误提示Syntax error (missing operator) in query expression 'username='.也说明你那个带条件读取数据库的代码是错误的。

[[it] 本帖最后由 nicechlk 于 2008-10-17 10:44 编辑 [/it]]

莫以善小而不为,莫以恶小而为之!
2008-10-17 10:42
bluezcheng
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-2
收藏
得分:0 
[bo][un]nicechlk[/un] 在 2008-10-17 10:42 的发言:[/bo]

是的,2楼说的不错。
看你的代码:
sql="select * from student where username="&id
这个数据库读取格式,说明id是自动编号的,如果id是文本字段,就应该这样:
sql="select * from student where username='" ...



谢谢你,照你所说的去写之前那个问题解决了,我的id是文本字段(username)。
但是现在又面对到另外一个问题了,希望你能再次的帮我看看问题出在哪里吗?
以下是我的modified.asp的代码
<body>


<%
id=request("id")

set rs=server.createobject("adodb.recordset")
sql="select * from student where username='"&id&"'"
rs.open sql,conn,1,3
%>


<h2 align="center">编辑个人资料</h2>
<form name="detail_form" method="post" action="register_process.asp">
<input name="sid" type="hidden" value="<%=rs("id")%>">
<table border="0" align="center" width="80%" background="bg.jpg">
<tr>
<td width="30%"><font color="red">*</font><b>帐号:</b></td>
<td width="70%"><%=rs("username")%></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>新密码:</b></td>
<td width="70%"><input type="password" name="pwd1" size="20"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>重输新密码:</b></td>
<td width="70%"><input type="password" name="pwd2"></td>
</tr>


<tr>
<td width="30%"><font color="red">*</font><b>名字:</b></td>
<td width="70%"><input type="text" name="F_name" size="20" value="<%=rs("firstname")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>姓氏:</b></td>
<td width="70%"><input type="text" name="L_name" size="20" value="<%=rs("lastname")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>性别:</b></td>

            <td>
              <input type="radio" checked name="P_gender" value="男">
              
              <input type="radio" name="P_gender" value="女">
              女</td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>出生日期:</b></td>
            <td>
<select name="birthyear">
<option value=""></option>
<%dim i
for i = 1970 to 2008%>
<option value="<% = i%>"><%=i%></option>
<%next%>
</select>

<select name="birthmonth">
<option value=""></option>
<%for i = 1 to 12%>
<option value="<%=i%>"><%=i%></option>
<%next%>
</select>

<select name="birthday">
<option value=""></option>
<%for i = 1 to 31%>
<option value="<%=i%>"><%=i%></option>
<%next%>
</select>

</td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>种族</b></td>
            <td height="20">
              <select name="race">
                <option value="">请选择
                <option value="">---------------------------
                <option value="土族">土族
                <option value="Black">Black
                <option value="华裔">华裔 (Chinese)
                <option value="Eurasion">Eurasion
                <option value="印裔">印裔 (Indian)
                <option value="巫裔">巫裔 (Malay)
                <option value="White">White
                <option value="其他">其他
              </select>

            </td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>残障类别:</b></td>
<td width="70%"><input type="text" name="disabled" size="20" value="<%=rs("disability")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>入学日期:</b></td>
            <td>
<select name="enrolyear">
<option value=""></option>
<%dim x
for x = 2005 to 2015%>
<option value="<% = x%>"><%=x%></option>
<%next%>
</select>

<select name="e_month">
<option value=""></option>
<%for i = 1 to 12%>
<option value="<%=i%>"><%=i%></option>
<%next%>
</select>

<select name="enrolday">
<option value=""></option>
<%for x = 1 to 31%>
<option value="<%=x%>"><%=x%></option>
<%next%>
</select>

</td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>毕业日期:</b></td>
            <td>
<select name="graduateyear">
<option value="<%=rs("graduateyear")%>"></option>
<%dim y
for y = 2005 to 2015%>
<option value="<% = y%>"><%=y%></option>
<%next%>
</select>

<select name="g_month">
<option value=""></option>
<%for i = 1 to 12%>
<option value="<%=i%>"><%=i%></option>
<%next%>
</select>

<select name="graduateday">
<option value=""></option>
<%for y = 1 to 31%>
<option value="<%=y%>"><%=y%></option>
<%next%>
</select>

</td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>主修课程</b></td>
            <td height="20">
              <select name="course">
                <option value="">请选择
                <option value="">---------------------------
                <option value="多媒体基础证书">多媒体基础证书
                <option value="网页设计高级证书">网页设计高级证书
                <option value="动画设计高级证书">动画设计高级证书
              </select>

            </td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>人生目标:</b></td>
<td width="70%"><input type="text" name="goal" size="20" value="<%=rs("goal")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>电话联络:</b></td>
<td width="70%"><input type="text" name="contact_no" size="20" value="<%=rs("contact number")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>紧急联络:</b></td>
<td width="70%"><input type="text" name="emergency_no" size="20" value="<%=rs("emergency number")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>电子邮箱:</b></td>
<td width="70%"><input type="text" name="email" size="20" value="<%=rs("email")%>"></td>
</tr>

<tr>
<td width="30%"><font color="red">*</font><b>地址:</b></td>
<td width="70%"><textarea name="address" rows="10" cols="30" value="<%=rs("address")%>"></textarea></td>
</tr>

<tr>
<td width="30%"></td>
<td width="70%"><input type="submit" value="提交" name="submit"><input type="reset" value="重填" name="reset"></td>
</tr>
</table>
</form>

错误信息
Error Type:
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/modified.asp
2008-10-20 00:17
nicechlk
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:330
专家分:187
注 册:2008-9-6
收藏
得分:0 
这个错误提示的意思是:要么是查询结果bof、eof为空,要么是当前记录已被删除。
再看看你的代码:
id=request("id")    ’这个id是哪个地方request的?也就是传值的方式是什么?是用户名吗?
如果不是用户名,那下面的查询是没有结果的。
set rs=server.createobject("adodb.recordset")
sql="select * from student where username='"&id&"'"
rs.open sql,conn,1,3

莫以善小而不为,莫以恶小而为之!
2008-10-20 00:57
bluezcheng
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-2
收藏
得分:0 
[bo][un]nicechlk[/un] 在 2008-10-20 00:57 的发言:[/bo]

这个错误提示的意思是:要么是查询结果bof、eof为空,要么是当前记录已被删除。
再看看你的代码:
id=request("id")    ’这个id是哪个地方request的?也就是传值的方式是什么?是用户名吗?
如果不是用户名,那下 ...


首先我要非常谢谢你愿意花时间帮我,谢谢你!

我的id是从<a href="modified.asp?id=<%=session("uid")%>">编辑个人资料</a>那里传过来的,也就是成功登陆后的用户名,而我的数据库是确定有这个用户的记录的,问题出在哪呢?

我需要将什么文件或代码放上来才能让大家容易帮我找出问题出在哪呢?

这是我的process1.asp
<%
strID=request("nm")
strPWD=request("pw")

set rs=server.createobject("adodb.recordset")
sql="select * from student where (username='"&strID&"' and password='"&strPWD&"')"
rs.open sql,conn,1,1

if rs.eof then
response.write ("对不起,用户名或密码有误,请重新登录")
else

session("udi")=rs("username")

rs.close
set rs=nothing

response.redirect("index.asp")
response.end

end if

conn.close
set conn=nothing
%>
2008-10-20 22:33
bluezcheng
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-2
收藏
得分:0 
我的问题到底出在哪里呢?有哪位高手能够帮帮小弟?

还是我的问题不够清楚?
2008-10-21 18:06
bluezcheng
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-2
收藏
得分:0 
怎么没有人回复了的?各位请高抬贵手,帮帮忙小弟看看问题出在哪?小弟在此先说声谢谢!
2008-10-22 23:58
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
你现在是modified.asp文件出错,还是process1.asp文件出错?

如果是modified.asp文件出错,那么很有可能是ID传的值有问题
你可以response.write request("id")看看传过来的值是什么
<%
id=request("id")
set rs=server.createobject("adodb.recordset")
sql="select * from student where username='"&id&"'"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write "没有找到该用户:"&id
response.end
end if
%>

如果是process1.asp文件出错,就按照下面的把括号去掉,括号不能乱加的
<%
strID=request("nm")
strPWD=request("pw")

set rs=server.createobject("adodb.recordset")
sql="select * from student where username='"&strID&"' and password='"&strPWD&"'"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
    response.write ("对不起,用户名或密码有误,请重新登录")
else
    session("udi")=rs("username")
    response.redirect("index.asp")
end if
rs.close
set rs=nothing
%>

[[it] 本帖最后由 hmhz 于 2008-10-23 00:15 编辑 [/it]]

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2008-10-23 00:14
bluezcheng
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-10-2
收藏
得分:0 
[bo][un]hmhz[/un] 在 2008-10-23 00:14 的发言:[/bo]

你现在是modified.asp文件出错,还是process1.asp文件出错?

如果是modified.asp文件出错,那么很有可能是ID传的值有问题
你可以response.write request("id")看看传过来的值是什么


如果是process1.asp文件出 ...


是modified.asp文件出错。
我想是ID传的值出错了,刚才照着你所写的方法去试,结果是“没有找到该用户:”
那请问我现在该怎么做呢?
2008-10-23 00:32
快速回复:用户登入后修改个人资料的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016795 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved