用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2663|回复: 5
收起左侧

[讨论/交流] 新手关于一个表单验证类的问题

[复制链接]
发表于 2012-8-6 15:41:12 | 显示全部楼层 |阅读模式

自定的规则
                            array(
                                     'field'=>'username',
                                     'label'=>'用户名',
                                     'rules'=>'trim|required|xss_clean|callback_username_check'
                            ),
                            array(
                                     'field'=>'password',
                                     'label'=>'密码',
                                     'rules'=>'trim|required|xss_clean|callback_password_check'
                            )
自定义的回调函数:
username_check()如果输入的用户名不存在,返回false
问题:
怎样自定义函数username_check()当用户名不存在时,停止对密码的验证,即没有任何错误。(如你看到的)如果用户名不存在就没必要再验证密码是否为空,更谈不上密码是否正确了。当然用ajax是很容易做到的,我想知道ci有没有此功能

发表于 2012-8-7 16:06:17 | 显示全部楼层
写清楚一点呀,怎么写才会弹出用户存在啊
 楼主| 发表于 2012-8-7 16:41:02 | 显示全部楼层
东来东往 发表于 2012-8-7 16:06
写清楚一点呀,怎么写才会弹出用户存在啊

用户不存在是自定义错误提示。代码如下:
PHP复制代码
 
              /**
         * 提示用户名是否不存在的检查
         * @param string $username
         * @return bool
         */

        function username_check($username)
        {
                if ($this->MAccount->get_by_username($username))
                {
                        //通过模型MAccount的get_by_username()函数检查用户名是否存在
                        //输入的用户名存在,返回TRUE,即用户名这项检查通过
                        return TRUE;                           
                }
                else
                {
                        //自定义错误提示
                        $this->form_validation->set_message('username_check', '用户名不存在');
                        return FALSE;                           //输入的用户名不存在时,返回FALSE
                }
        }      
 
复制代码

登录表单提交后,会表单验证,如果用户名存在,不会提示任何信息。
重复我的问题:就是怎样在用户名验证不通过时,马上结束验证。表单后面的部分(如密码)不会被验证
发表于 2012-8-7 17:00:32 | 显示全部楼层
你的密码验证的函数写在哪里?
发表于 2012-8-7 17:38:51 | 显示全部楼层
高手,你的Q是多少啊我想加你
 楼主| 发表于 2012-8-7 21:06:31 | 显示全部楼层
东来东往 发表于 2012-8-7 17:38
高手,你的Q是多少啊我想加你

我是有问题的新手.密码验证函数写在和调用它的login()函数同一个控制器里.

本版积分规则