登录验证不正确,错在那里啊

#1 newsun668

我有一个前端页面,用于用户登录,输入username、password,表单是提交到控制器main中的 login,代码如下:
//用户登录检测
    function login(){
        $v_args=$this->spArgs();
        $vm_users=spClass('m_users');
        $vm_users->verifier=$vm_users->verifier_login;
        $v_verify_result=$vm_users->spVerifier($v_args);
        if (false==$v_verify_result) //通过验证
        {
            session_start();
            $_SESSION['USER_ID']=$v_args['username'];
            $this->jump(spUrl('main', 'index')); // 跳转到首页
        }else
        {
          //显示错误信息
            $this->tv_article_image='/images/zz' . rand(1,7) . '.jpg';
            $this->tv_error_list=$v_verify_result;
            $this->display('error_verifier_tpl.html');
        }
    }

代码验证在数据模型m_users中,添加了自己的验证规则代,代码如下:
//定义用户登录的验证规则
     var $verifier_login = array(
                    "rules" => array( // 规则
                            'username' => array(  // 这里是对username的验证规则
                            'notnull'=>True,
                            'validate_user'=>TRUE, //必须是有效用户                                       
                            ),

                         'password' => array(  // 这里是对username的验证规则
                            'notnull'=>True,         
                            ),
                           
                            'verifyCode'=>array( //验证码
                                'checkVerifyCode'=>TRUE,
                                ),
                    
                    ),//rules end

                 "messages" => array( // 提示信息
                        'username' => array(
                           'validate_user'=>'帐号或密码错误!',
                           'notnull'=>'用户名必须输入',
                        ),//username end
                        'password'=>array(
                            'notnull'=>'密码必须输入',
                            ),
                    

                        'verifyCode'=>array( //验证码
                                'checkVerifyCode'=>'输入的验证码不正确',
                                ),

                    ),//message end
            );

///////
//检查是否有效用户,密码与用户名必须正确
    function validate_user($val,$right,$values)
    {
        $v_username=$val;
        $v_password=$values['password'];
        $v_exist=false; //默认不存在
        if (($v_password!=null) && ($v_username!=null) ){
            $v_where=array('username'=>$v_username,
                'password'=>md5($v_password));

            $v_id=$this->find($v_where);
            if (false!=$v_id) $v_exist=TRUE; //用户存在
        }

        return ($v_exist===$right);

    }

测试时,输入正确的用户、密码、验证码后,总是报告用户名或密码不正确,是不是我的 validate_user写得不正确呢?


2013-11-20 15:43:37

#2 newsun668

初充一下,我的登录页面html如下:





















帐号:
密码:
识别码:
          src="<{spUrl c=main a=verifyCode}>"
    />






2013-11-20 15:48:51

#3 newsun668

问题解决了,原来是我数据库的数据有错,代码是正确的!

2013-11-20 19:30:05