php – Codeigniter显示个人自定义错误
发布时间:2020-12-13 16:46:34 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试验证我的登录表单,并且我的用户名和密码字段有规则. $this-form_validation-set_rules('username','Username','trim|required|xss_clean');$this-form_validation-set_rules('password','Password','trim|required|xss_clean|callback_check_datab
我正在尝试验证我的登录表单,并且我的用户名和密码字段有规则.
$this->form_validation->set_rules('username','Username','trim|required|xss_clean'); $this->form_validation->set_rules('password','Password','trim|required|xss_clean|callback_check_database'); 所以我的callback_check_database函数在Password字段中. 所以在我的check_database函数中,我有: $this->form_validation->set_message('check_database','Invalid username or password'); return false; 所以我正在设置我想要显示的自定义消息. 在我看来,我想单独显示check_database错误.我不想显示任何其他错误. 这是我尝试过的: // does not work <?php echo form_error('check_database'); ?> // this works <?php echo form_error('password'); ?> 因为它是用于密码字段,它只会在我回显密码错误时显示.但这意味着,由于密码是必填字段,如果我没有在其中键入任何内容,则会显示错误,指出密码字段是必需的. 有没有办法只显示我设置的自定义错误消息? 解决方法
您可以通过两种不同的方式解决此问题.两者都有优点和缺点.
选项1: $this->form_validation->set_rules('password','callback_check_database'); 然后在callback_check_database中包含一个检查以确保$value!=“”(复制“required”字段). 注意:你不应该在密码字段上使用xss_clean(因为它会改变密码 – 谷歌它,你会看到例子),并且假设你正在哈希密码没有获得任何好处. 选项2: 在视图文件中,只需键入即可 <?php if (form_error('password')) { echo "Invalid username or password"; } ?> 这意味着您实际上并没有回显错误,您只是检查密码字段是否存在错误,无论它是什么,您只显示上面的文本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |