真爽,搞定!
原来是没有定义变量username的值……
此外还有一个错误之前没发现,就是少了一个else……
那么,程序核心算是写完了。
原来程序是直接关联我的整站风格的,接下来就是剥离style了。
在正式发布之前一直请用这个这个地址登陆试用——发布之后可能还是这个地址……
http://perichr.cn/temp/lk/
------------这种事情果然还是要靠自己------------------------------------
首先检讨,这个不是在偶z-blog里发生的问题……
但是偶还是顶风作案到这里来发求助,这绝对是有原因的……
前些日子用了williamlong的BlogRoll插件,的确很不错,但是JS调用总是不行,而且很麻烦,每加一个都要辛辛苦苦开抓虾,下载OPML,开Blog后台-插件-然后文件生成……好麻烦咧……
所以偶就动了一个小念头,为什么不用一般的友情链接的形式来做BlogRoll呢?对方可以主动申请加入,偶只要点一下“审核”就可以在各种地方调用;偶尔发现经典站,自己动手加一个两个也不会很麻烦……
我是把这个东西当作未来的z-blog插件来看的,所以遇到解决不了的问题就发在这里求助一下……
这几天狂啃asp,弄了一个东西出来:
http://perichr.cn/temp/lk/
JS调用说明和预览在这里:
http://perichr.cn/temp/lk/help.html
然后问题出现了……因为偶完全是asp菜鸟,很多东西只会照本宣科,知其然而不知其所以然。之前磕磕碰碰总算弄了个整体出来,结果这一道坎过不去了……
问题发生在修改管理员密码上面,一旦提交修改就出错。
错误类型:
ADODB.Recordset (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/check.asp, 第 110 行
可是,那个位置明明有记录的,就是存用户密码的地方……同样的查询在别的地方就可以查到……
110行: rs("u_password") = pass3
以下为97-119行
复制内容到剪贴板
代码:
Case "ChangePassword"
Call CheckRoot()
pass2=md5_net(replace(trim(request.form("pass2")),"'",""))
pass3=md5_net(replace(trim(request.form("pass3")),"'",""))
If pass2<>pass3 Then
response.write "<script type='text/javascript'>alert('New Password are not the same!');"
response.write "this.location.href='vbscript:history.back()';</script>"
response.End
End If
set rs=server.createobject("adodb.recordset")
sql="select * from admin where u_name='"&username&"'"
rs.open sql,conn,1,3
If rs.bof and rs.eof Then
rs("u_password") = pass3
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
response.write "<script type='text/javascript'>alert('密码修改成功!');"
response.write "this.location.href='index.asp';</script>"
response.End
End If代码中使用了CheckRoot()的模块。以下为CheckRoot()内容:
复制内容到剪贴板
代码:
Function CheckRoot()
username=replace(trim(request.form("username")),"'","")
password=md5_net(replace(trim(request.form("password")),"'",""))
set rs=server.createobject("adodb.recordset")
sql="select * from admin where u_name='"&username&"'"
rs.open sql,conn,1,1
If rs.bof and rs.eof Then
response.write "<script type='text/javascript'>alert('Username or Passward is not valid!');"
response.write "this.location.href='vbscript:history.back()';</script>"
response.End
Else If rs("u_password")<>password Then
response.write "<script type='text/javascript'>alert('Username or Passward is not valid!');"
response.write "this.location.href='vbscript:history.back()';</script>"
response.End
End If
End If
End function我刚开始学asp,勉强也知道了一些命令的含义和用法,但是更多的是一无所知……比如 Function,就是看到z-blog里面有N多就想试试看,成功了几个,但是这里可能出问题了……可是我不知道问题在哪里……
PS,还有一个额外的问题,我是XPsp2,+IIS5.1,为什么本地调试utf-8页面几乎都乱码?上传到服务器上就好很多。
但不是全好,你试用一下那个友情链接系统,经常可以看到英语的alert窗口——那是因为一旦用中文就乱码……这又是怎么回事涅?
[
本帖最后由 PeriCHR 于 2006-10-7 06:06 编辑 ]