+ -
当前位置:首页 → 问答吧 → 登录失败却不弹出提示

登录失败却不弹出提示

时间:2011-07-15

来源:互联网

用户登录时,我是调用存储过程验证账号密码,登录失败返回0,登录成功返回1
VBScript code

rpt=Cint(cmd.Parameters("@rpt").Value)
    If rpt=0 Then
    Call MyMessage("用户名密码错误或用户未被激活")     '如果用户不存在或者被禁用弹出对话框提示
    Response.End()
    ElseIf rpt=1 Then                                     '登陆成功


但不知道是什么原因,账号密码都正确,登录正常,但登录失败时,虽然没有登录成功,却不执行Call MyMessage("用户名密码错误或用户未被激活"),我搞不清楚是哪方面的问题

作者: Firewall89   发布时间: 2011-07-15

存储过程返回值有问题

作者: yaxiya   发布时间: 2011-07-15

SQL code

/*
Fun        : 用户登陆验证.若密码加密,则由客户端实现
Author        : **
CreateTime    : 2005-12-23
*/

CREATE PROCEDURE pro_UserCheck
         @userID           as varchar(50),
         @passWord         as varchar(50),
         @sort             as int,
          
       
         
         @addr       as varchar(200) output,
         @phone      as varchar(200) output,
         @userState  as int output,
         @userSort   as int output,  
         @rpt        as int output                     --0为登陆失败,1为登陆成功

 AS
Begin 
           Select @userSort = UserSort,@userState=UserState,@addr=Addr,@phone=Phone
           From tbl_UserInfo
           Where UserID = @userID
                 And [Password] = @passWord
                 And (UserState = 2 or UserState = 1)           --2为通过审核并且帐号启用
             --And userSort=@sort
             And userSort<>3
                    
                 IF @@rowcount <= 0 
                 Begin
                       Set @rpt =0
                 End
                 Else
                 Begin
                       IF ISNULL(@addr,'') = '' or ISNULL(@phone,'') = ''
                       Begin
                          Set @rpt=0
                       End
                       Else
                       Begin
                           update tbl_userInfo set userstate=2  Where UserID = @userID
                          Set  @rpt=1
                        End   
                             
                       
                End
 End
GO


这是存储过程,应该没错,以前调试都没问题,而且最让我郁闷的是不定哪一次能跳出错误,以后就不行了

作者: Firewall89   发布时间: 2011-07-15

你在asp中response.write(rpt)的值,看能否得到?

作者: yaxiya   发布时间: 2011-07-15

得不到

作者: Firewall89   发布时间: 2011-07-15

引用 4 楼 firewall89 的回复:

得不到

存储过程有问题

作者: yaxiya   发布时间: 2011-07-15

你将:@rpt as int output  
设为字符类型试一试

作者: yaxiya   发布时间: 2011-07-15

asp调用:cmd.parameters.append cmd.createparameter("@rpt",adInteger,adParamOutput)

作者: yaxiya   发布时间: 2011-07-15

热门下载

更多