| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5068 人关注过本帖
标题:ASP求大神帮我看看问题出在哪里了!
只看楼主 加入收藏
yokiyao
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-3-20
收藏
 问题点数:0 回复次数:5 
ASP求大神帮我看看问题出在哪里了!
asp 看代码,如果条件不符合都正确提示,可如果所有条件都符合,它反过来会提示“必填项目不能为空”

<!--#include file="conn.asp"-->
<%
if(request("action")="yes") then
   uid=request("uid")
   upass=request("upass")
   yaoq=request("yaoq")
   uemail=request("uemail")
   
   if uid="" or upass="" or yaoq="" or uemail="" then
   Response.write "<SCRIPT language=JavaScript>alert('必填项目不能为空!');history.go(-1);</SCRIPT>"
   end if
   
   Set rs1= Server.CreateObject("ADODB.Recordset")
       SQL="Select * from [ACC] where FLD_ID='"&uid&"'"
       rs1.open SQL,conn,1,3
       if rs1.eof or rs1.bof then
       rs1.close
   Response.write "<SCRIPT language=JavaScript>alert('账户不存在,请重新输入!');history.go(-1);</SCRIPT>"
   Response.End
   else
       if rs1("PASSWORD")<>upass then
   rs1.close
   Response.write "<SCRIPT language=JavaScript>alert('密码错误,请重新输入!');history.go(-1);</SCRIPT>"
   Response.End
   end if
   
   if rs1("Mail")<>uemail then
   rs1.close
   Response.write "<SCRIPT language=JavaScript>alert('邮件错误,请重新输入!');history.go(-1);</SCRIPT>"
   Response.End
   end if
   
   if rs1("VIP")<>"0" then
   rs1.close
   Response.write "<SCRIPT language=JavaScript>alert('您不符合条件,不能使用该邀请码!');history.go(-1);</SCRIPT>"
   Response.End
   end if

   Set rs2= Server.CreateObject("ADODB.Recordset")
   SQL2="Select * from [yqm] where nb='"&yaoq&"'"
   rs2.open SQL2,conn,1,3
   if rs2.eof or rs2.bof then
   rs2.close
   rs1.close
   Response.write "<SCRIPT language=JavaScript>alert('该邀请码不存在或已被使用!');history.go(-1);</SCRIPT>"
   Response.End
   else
   rs1.addnew
   rs1("YAOQINGMA")=yaoq
   rs1("VIP")="1"
   rs1("VIPTIME")= DateAdd("m", 1,date()) + time()
   rs1.update
   sql2= "delete from [yqm] where id=(select id from [yqm] where nb='"&yaoq&"')"
   conn.execute sql2
   rs2.close
   end if
   set rs2=nothing
   rs1.close
   Response.write "<SCRIPT language=JavaScript>alert('使用成功!');history.go(-1);</SCRIPT>"
       end if
   set rs1=nothing
end if
%>

非常奇怪,如果表单提交的数据不符合规则,那么那些alert('.....!')
如:【密码错误,请重新输入!、您不符合条件,不能使用该邀请码!、该邀请码不存在或已被使用!】都可以正常出来!
反过来如果所有条件符合,他却不执行写入与删除,却又返回去执行  【 alert('必填项目不能为空!')】这个,我把这个判断去掉,他就执行【alert('账户不存在,请重新输入!');】

到底问题出在哪里,
2016-03-20 00:24
yokiyao
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-3-20
收藏
得分:0 
另外,我有一个注册页面跟这个就是差不多的就没问题~~~就是注册那个是判断id记录不存在才执行 这个只是反过来ID记录存在才执行  其他语句都基本一样~~~就是奇怪,为什么这个就不行呢
2016-03-20 00:31
yokiyao
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-3-20
收藏
得分:0 
它就是一到写入数据这步,就不执行了,然后又提交一个空数据给程序再次处理~~~
2016-03-20 01:02
yokiyao
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-3-20
收藏
得分:0 
已经懂了~~~~~~~~~
2016-03-20 01:16
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
应该是程序结构逻辑错误。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2016-03-20 08:54
ke爱的小tu子
Rank: 2
等 级:论坛游民
帖 子:51
专家分:20
注 册:2021-2-11
收藏
得分:0 

<!--#include file="conn.asp"-->
<%
if(request("action")="yes") then
    uid=request("uid")'账户
    upass=request("upass")'密码
    yaoq=request("yaoq")'邀请码
    uemail=request("uemail")'邮箱
   
    if uid="" or upass="" or yaoq="" or uemail="" then
        Response.write "<SCRIPT language=JavaScript>alert('必填项目不能为空!');history.go(-1);</SCRIPT>"
        response.end
    end if
   

    Set rs1= Server.CreateObject("ADODB.Recordset")
    SQL="Select * from [ACC] where FLD_ID='"&uid&"'"
    rs1.open SQL,conn,1,3

    if rs1.eof or rs1.bof then
        rs1.close

        Response.write "<SCRIPT language=JavaScript>alert('账户不存在,请重新输入!');history.go(-1);</SCRIPT>"
        Response.End
    else
        if rs1("PASSWORD")<>upass then
            rs1.close
            Response.write "<SCRIPT language=JavaScript>alert('密码错误,请重新输入!');history.go(-1);</SCRIPT>"
            Response.End
        end if
   
        if rs1("Mail")<>uemail then
            rs1.close
            Response.write "<SCRIPT language=JavaScript>alert('邮件错误,请重新输入!');history.go(-1);</SCRIPT>"
            Response.End
        end if
   
        if rs1("VIP")<>"0" then
            rs1.close
            Response.write "<SCRIPT language=JavaScript>alert('您不符合条件,不能使用该邀请码!');history.go(-1);</SCRIPT>"
            Response.End
        end if

        Set rs2= Server.CreateObject("ADODB.Recordset")
        SQL2="Select * from [yqm] where nb='"&yaoq&"'"
        rs2.open SQL2,conn,1,3


        if rs2.eof or rs2.bof then
            rs2.close
            rs1.close
            Response.write "<SCRIPT language=JavaScript>alert('该邀请码不存在或已被使用!');history.go(-1);</SCRIPT>"
            Response.End
        else
            rs1.addnew
            rs1("YAOQINGMA")=yaoq
            rs1("VIP")="1"
            rs1("VIPTIME")= DateAdd("m", 1,date()) + time()
            rs1.update


            sql2= "delete from [yqm] where id=(select id from [yqm] where nb='"&yaoq&"')"
            conn.execute sql2


           '直接用rs2删除行不?

            rs2.close
        end if
        set rs2=nothing
        rs1.close
        Response.write "<SCRIPT language=JavaScript>alert('使用成功!');history.go(-1);</SCRIPT>"
        response.end
    end if


    set rs1=nothing
end if
%>
2021-02-18 01:22
快速回复:ASP求大神帮我看看问题出在哪里了!
数据加载中...
 
   



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

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