php - 电子邮件存在功能与 codeigniter php

标签 php database mysqli codeigniter-3

我正在使用忘记密码功能,在忘记密码页面上我需要检查电子邮件是否已存在于数据库中,但我在检查电子邮件时遇到问题,它返回在数据库中找不到但实际上在数据库中的电子邮件。

用户模型

//Email check for forgot password
public function email_exists($email) {

    $sql    = "SELECT username, email FROM users WHERE email = '{$email}' LIMIT 1";
    $result = $this->db->query($sql);
    $row    = $result->row();

    return($result->num_rows() === 1 && $row->email) ? $row->username : false;

}

Controller

public function forgot_password() {

    if(isset($_POST['email']) && !empty($_POST['email'])) {

        // Load form helper and validation library
        $this->load->helper('form');
        $this->load->library('form_validation');

        $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email');

        if($this->form_validation->run() == FALSE) {

            //Email not valid, return to forgot password page and show error
            $data['title'] = 'Forgot password';

            $this->load->view('header', $data);
            $this->load->view('forgot_password', array('error' => 'Enter a valid email address.'));
            $this->load->view('footer');

        } else {

            $email  = trim($this->input->post('email'));
            $result = $this->user_model->email_exists($email);

            if($result) {
                $this->send_password_to_email($email, $result); //send_password_to_email
                $this->load->view('header');
                $this->load->view('forgot_password_ok', array('email' => $email));
                $this->load->view('footer');

            } else {

                $data['title'] = 'Forgot password';

                $this->load->view('header', $data);
                $this->load->view('forgot_password', array('error' => 'Email address is not found on our database.'));
                $this->load->view('footer');
            }

        }
    } else {

        $data['title'] = 'Forgot password';

        $this->load->view('header', $data);
        $this->load->view('forgot_password');
        $this->load->view('footer');

    }

}

请帮我解决这个问题。如果您需要更多详细信息,请告诉我

最佳答案

您需要将模型函数体更改为:

public function email_exists($email) {

    $sql = "SELECT username, email FROM users WHERE email = '{$email}' LIMIT 1";
    $result = $this->db->query($sql);
    $row = $result->row();

    return $result->num_rows() > 0 ? true : false;
}

我正在改变这一行:

return $result->num_rows() > 0 ? true : false;

关于php - 电子邮件存在功能与 codeigniter php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36091033/

相关文章:

php - Symfony cron 作业,奇怪的错误

php - 如何显示提交后立即发表的评论

mysql_install_db 给出 fatal error : Could not find my-default. cnf

mongodb - 如何在 MongoDB 中执行一次性数据库同步到另一个数据库?

php - Mysqli 查询不执行

php - 如何在 PHP 中使用其他语言的 echo 或 print

php - 如何在 Windows 上从 php 的 dll 中调用函数?

php - 在 codeigniter 中按限制排序

sql - 获取前 X 名用户,加上特定用户(如果他们不在前 X 名中)

php - MySQL IN() 函数不起作用