【发布时间】:2016-07-17 11:53:18
【问题描述】:
嘿 :) 所以我正在尝试检查用户是否已经使用他们的电子邮件地址进行了注册。电子邮件是数据库中的唯一字段。我遇到的问题是当我检查它时,(如果电子邮件存在于表中,它将返回 false 并将一条消息发送给用户),即使输入的电子邮件不存在,num_rows() 也总是返回 false桌子;
我不知道帖子是否有问题,但是如果我将电子邮件部分注释掉并注册,它会起作用,如果电子邮件是重复的,则会显示 1062 错误。
模型函数 checkEmail()
$email_address = $this->input->post('email');
$this->db->where('email', $email_address);
$result = $this->db->get('user');
if($result->num_rows() > 0){
/*
* the email already exists
* */
return false;
}
和控制器:
$checkEmail = $this->f_model->checkEmail();
if(!$checkEmail){
/*
* if email exists
* */
$msg = '<font color=red>Email already registered.</font><br />';
$this->register($msg);
}
else {
$interest = $this->f_model->enter_register_details_01();
if(!$interest) {
$msg = '<font color=red>Password and Confirm Password do not match.</font><br />';
$this->register($msg);
}
else {
$data['msg'] = $msg;
$this->load->view("registration_view_02", array('interest' => $interest,
'message' => $data));
}
}
即使表格是空的,也会出现“电子邮件已注册”的消息
感谢您的帮助。
【问题讨论】:
-
如果 num_rows
-
在 if 条件
else return true之后将此行添加到 checkEmail() 函数中 -
在控制器中尝试
var_dump( $checkEmail ),查看检查结果,可能有问题 -
谢谢大家,我错过了
return true;位
标签: php mysql codeigniter email