gpt4 book ai didi

php - 在 CodeIgniter 中设置常规表单验证错误

转载 作者:行者123 更新时间:2023-12-04 05:37:33 25 4
gpt4 key购买 nike

假设我在 CodeIgniter 中有一个登录表单——我可以为单个输入设置验证规则,但是有没有办法抛出模型/ Controller 级别的错误和消息?

具体来说,如果下面的方法没有返回 TRUE,我希望我的表单重新显示并显示“电子邮件地址或密码不正确”消息。目前 Controller 只是重新加载 View 和 set_value()s

public function authorize_user()
{
$this->db->where('email', $this->input->post('email'));
$this->db->where('password', $this->input->post('password'));

$q = $this->db->get('users');

if($q->num_rows() == 1){
return true;
}
}

也许我想多了,我应该将该错误消息附加到电子邮件输入中吗?

最佳答案

您可以使用回调函数来完成此操作。步骤如下:
1. 您的 authorize_user()功能必须在您设置规则的 Controller 中。
2. 通过添加类似于以下内容的代码来制定“回调”规则:

$this->form_validation->set_rules('email', 'email', 'callback_authorize_user['.$this->input->post("password").']');

请注意,我为回调函数添加了一个参数。这些函数会自动接收一个参数,该参数由 set_rules() 的第一个参数决定。 .在这种情况下,自动传递给回调函数的参数是电子邮件。另外,我将密码作为第二个参数传递。

3.将相应的参数添加到您的函数中:
public function authorize_user($email,$password)
{
//As I said before, the email is passed automatically cause you set the rule over the email field.
$this->db->where('email', $email);
$this->db->where('password', $password);

$q = $this->db->get('users');

if($q->num_rows() == 1){
return true;
}
}

更多信息请访问: http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks

希望有帮助!

关于php - 在 CodeIgniter 中设置常规表单验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com