Php 如何使用CodeIgniter';验证匹配类型;什么是表单验证类?

Php 如何使用CodeIgniter';验证匹配类型;什么是表单验证类?,php,forms,Php,Forms,如何验证我的电子邮件,这是由用户提供的,它必须签入数据库表字段电子邮件..那么我如何才能做到这一点?回拨功能不起作用,有什么建议吗 我已经这样做了,但没有起作用: $this->form_validation->set_rules('email','Email','trim|required|xss_clean|valid_email|matches[mod_register.email]'); 此处mod_register是表名,email是字段。只匹配另一个表单字段,而不是数据

如何验证我的电子邮件,这是由用户提供的,它必须签入数据库表字段电子邮件..那么我如何才能做到这一点?回拨功能不起作用,有什么建议吗

我已经这样做了,但没有起作用:

$this->form_validation->set_rules('email','Email','trim|required|xss_clean|valid_email|matches[mod_register.email]');

此处
mod_register
是表名,email是字段。

只匹配另一个表单字段,而不是数据库字段,请参阅:

您可以使用回拨:

$this->form_validation->set_rules('email','Email','trim|required|xss_clean|valid_email|callback_check_email');
然后在控制器中添加以下功能:

/**
 * validation function for checking email exists in database
 * @param  string $email
 * @return bool
 */
public function check_email($email = NULL) {

    // if no email specified, skip
    if (empty($email)) {
        return TRUE;
    }

    // build query to check if email exists in database
    $where = array(
        'email' => $email
    );

    // run query
    $query = $this->db->get_where('mod_register', $where, 1);

    // check results
    if ($query->num_rows() == 1) {
        // matches
        return TRUE;
    }

    // no matches
    return FALSE;
}
见: