| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1562 人关注过本帖
标题:一个怪问题,判断无效【急求救】
只看楼主 加入收藏
zpczzn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-18
收藏
 问题点数:0 回复次数:10 
一个怪问题,判断无效【急求救】
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file = "inc/basic.asp"-->
<%
if Request.ServerVariables("REQUEST_METHOD") <> "POST" Then
    response.Redirect("index.asp")
    response.End()
end if

Set ygRs = Server.CreateObject( "ADODB.Recordset" )
    strQ="select * from userInfo where ((loginName='"&Request.Form("loginname")&"') or (netName='"&Request.Form("netname")&"'))"
    ygRs.open strQ,ygConn,1,3

If not ygRs.eof and not ygRs.bof Then        
        response.Write("用户名或网名已存在")
else
        call doreg
end If

sub doreg()
    ygRs.addnew
    ygRs("loginName")=request.Form("loginname")
    ygRs("password")=request.Form("pwd")
    ygRs("netName")=request.Form("netname")
    ygRs("homeCall")=request.Form("homecall")
    ygRs("workCall")=request.Form("workcall")
    ygRs("cellCall")=request.Form("cellcall")
    ygRs("netName")=request.Form("netname")
    ygRs("qq")=request.Form("qq")
    ygRs("realName")=request.Form("realname")
    ygRs("marrige")=request.Form("marrige")
    ygRs("birthday")=oday(request.Form("birthday"))
    ygRs("nation")=request.Form("nation")
    ygRs("native")=request.Form("native")
    ygRs("email")=request.Form("email")
    ygRs("workPlace")=request.Form("workplace")
    ygRs("livePlace")=request.Form("liveplace")
    ygRs("special")=request.Form("special")
    ygRs("resume")=GetSafeStr(request.Form("resume"))
    ygRs("registTime")=now()
    ygRs("lastLoginTime")=now()
    ygRs("loginTimes")=0
    ygRs("right")=0
    ygRs.update
    
    session("islogin")=true
    session("userID")=ygRs("userID")
    session("netName")=ygRs("netName")
    session("lastLoginTime")=ygRs("lastLoginTime")
    call DBConnEnd
    Response.Write("注册")

end sub
 %>

数据库连接池没有问题
注册表单传入后,任意的用户名显示用户名或网名已存在,但是实际上表单内容已经写入到数据库中了
通过在不同的地方加入一些文本,发现sub中的内容先于整个文件内容执行
但是一旦把sub中的内容清空,程序就正常了
不用sub,把注册的程序写在if块中也是一样的
貌似只要有数据库操作的程序块就会先于所有程序。

问题非常怪,我查到baidu知道里面也有一个人和我有相同的问题,没有人进行了有效的回答。请大家帮我解决,谢谢!

[[it] 本帖最后由 zpczzn 于 2008-3-18 16:19 编辑 [/it]]
搜索更多相关主题的帖子: ygRs response Request 
2008-03-18 11:25
Kettyjin1983
Rank: 1
等 级:新手上路
帖 子:303
专家分:0
注 册:2007-8-17
收藏
得分:0 
看代码没有问题啊,等待高手出现!
2008-03-18 11:51
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
测试没问题,楼主清空ie缓存再测试一下。
2008-03-18 12:11
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
收藏
得分:0 
我也遇到过这样的问题,真是怪的,出奇了。我的建议是重新写代码。然后依次判断。

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2008-03-18 13:19
zpczzn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-18
收藏
得分:0 
别说清空缓存了
我还干了删掉iis,重启系统,重装dreamwaver,重设站点,以及重写代码

结果是:仍然无法!
2008-03-18 16:18
lixiouni
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-18
收藏
得分:0 
你可以试着把RS.BOF 去掉试一下
我也是建议
2008-03-18 16:32
zpczzn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-18
收藏
得分:0 
楼上说的。。。我也试过
还试过把if的判断条件暴力穷举修改,结果~~残念!
2008-03-18 19:53
恒天装饰网
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2008-2-16
收藏
得分:0 
改成ygRs.open strQ,ygConn,1,1看看,因为我有次发现1,3没有把数据从数据库中读出来,而1,1就读出来了!
2008-03-19 00:02
zpczzn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-18
收藏
得分:0 
数据肯定读出来了
不然下面的addnew会报错的

现在的关键是怎么后面的代码优于所有来执行了

今天早上我把整个代码改掉了
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file = "inc/basic.asp"-->
<%
if Request.ServerVariables("REQUEST_METHOD") <> "POST" Then
    response.Redirect("index.asp")
    response.End()
end if

dim aName,ologinname,onetname,opwd,ohomecall,oworkcall,ocellcall,oqq,orealname,osex,omarrige,obirthday,onative,onation,oemail,oliveplace,oworkplace,ospecial,oresume
aName=request.Form("actionName")
ologinname=request.Form("loginName")
onetname=request.Form("netName")
opwd=request.Form("pwd")
ohomecall=request.Form("homeCall")
oworkcall=request.Form("workCall")
ocellcall=request.Form("cellCall")
oqq=request.Form("qq")
orealname=request.Form("realName")
osex=request.Form("sex")
omarrige=request.Form("marrige")
obirthday=oday(request.Form("birthday"))
onative=request.Form("native")
onation=request.Form("nation")
oemail=request.Form("email")
oliveplace=request.Form("livePlace")
oworkplace=request.Form("workPlace")
ospecial=request.Form("special")
oresume=GetSafeStr(request.Form("resume"))

if aName="regist" then
    call doReg
end if

sub doReg()
    Set ygRs = Server.CreateObject( "ADODB.Recordset" )
    strQ="select * from userInfo where ((loginName='"&Request.Form("loginname")&"') or (netName='"&Request.Form("netname")&"'))"
    ygRs.open strQ,ygConn,1,3

    If not ygRs.eof and not ygRs.bof Then        
        call GoError("用户名或网名已存在")
    else
        ygRs.addnew
        ygRs("loginName")=ologinname
        ygRs("pwd")=opwd
        ygRs("netName")=onetname
        ygRs("homeCall")=ohomecall
        ygRs("workCall")=oworkcall
        ygRs("cellCall")=ocellcall
        ygRs("qq")=oqq
        ygRs("realName")=orealname
        ygRs("sex")=osex
        ygRs("marrige")=omarrige
        ygRs("birthday")=obirthday
        ygRs("native")=onative
        ygRs("nation")=onation
        ygRs("special")=ospecial
        ygRs("resume")=oresume
        ygRs("registTime")=now()
        ygRs("lastLoginTime")=now()
        ygRs("loginTimes")=0
        ygRs("right")=0
        ygRs.update
        
        session("islogin")=true
        session("userID")=ygRs("userID")
        session("netName")=ygRs("netName")
        session("lastLoginTime")=ygRs("lastLoginTime")
        
        ygRs.Close
    end If

    call Gopage(session("netName")&"注册成功","index.asp")
end sub


 %>
一开始还好好的,后来我在dreamwaver中对那个表单文件改了名,然后模板改了名
再测试的时候发现又一样的问题了,然后我清空了ie缓存,重建了dreamwaver站点,发现~~问题又一次袭击了我!
2008-03-19 12:11
zpczzn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-18
收藏
得分:0 
实在无法了,我放弃了asp,改用ajax了
但是这个问题还是很困扰我,很想知道为什么,希望大家进来看看多想想
技术有问题绕过去是可以的,但是不能解决的话总归是块心病,今天绕过去了,明天就不知道会怎样
2008-03-20 13:48
快速回复:一个怪问题,判断无效【急求救】
数据加载中...
 
   



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

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