我创建了扩展CI_Form_validation的MY_Form_validation。我已经在客户控制器中加载了库。客户模型中的validate_email函数在登录时检查客户是否存在。它在localhost上运行良好,但是即使在用户实际存在的情况下,该方法也始终在远程服务器上返回false。有什么事吗
我已经像这样加载了图书馆
$this->load->library('form_validation');
登录电子邮件验证规则
$validate_data = array(
array(
'field' => 'login_email',
'label' => 'Email',
'rules' => 'trim|required|validate_email|is_active|xss_clean'
)
);
My_Form_validation库
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Form_validation extends CI_Form_validation {
public function __construct(){
parent::__construct();
}
public function validate_email($field){
$this->CI->load->model('customer_model');
$email = $this->CI->customer_model->validate_email($field);
if($email === true){
return true;
}else{
$this->set_message('validate_email','The {field} does not exist');
return false;
}
}//end method validate_email
}
?>
验证电子邮件模型功能
public function validate_email($email){
$sql = "SELECT `customer_id` FROM `customer` WHERE `email` = ? AND `status` != -1";
$query = $this->db->query($sql,array($email));
return ($query->num_rows() == 1) ? true : false;
}//end method validate_email
我喜欢使用-1代表数据库中已删除的帐户
我也在自动加载数据库
我有一个类似的问题。根据codeigniter database.php中的数据库配置,我注意到以下内容
char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
所以我删除了数据库并重新创建了它。将我的数据库排序规则更改为utf8_general_ci
,并将表字符集从更改为armscii8
,utf8
并且一切正常
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句