2016-03-18 10 views
1

Ich arbeite vergessen Passwort-Funktion, auf der Passwort vergessen Seite Ich brauche Check-E-Mail ist bereits auf der Datenbank existiert aber bekomme ein Problem auf E-Mail-Prüfung und es gibt keine E-Mail nicht gefunden auf der Datenbank aber es tatsächlich in der Dabatase.E-Mail existiert Funktion mit Codeigniter PHP

User_model

//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'); 

    } 

} 

Bitte helfen Sie mir, dies zu beheben. Lassen Sie mich wissen, wenn Sie mehr Details benötigen

+0

zunächst einmal prüfen r u E-Mail-Wert zu bekommen? 'echo $ this-> input-> post ('email');' oder 'print_r ($ _ POST);' – devpro

+0

@devpro Ich habe Echo-Eingabewert verwendet und hit submit, zeige den Wert, was ich eingegeben habe. –

+0

Verwenden Sie dann 'return ($ result-> num_rows() === 1)? true: false; ' – devpro

Antwort

1

Sie benötigen eine Modellfunktion Körper zu ändern:

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; 
} 

Ich ändere diese Zeile:

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