2016-03-18 23 views
1

Şifremi unuttum şifremi unuttum, şifremi unuttum sayfasından kontrol e-postası veritabanında zaten var ama e-posta kontrolünde sorun yaşıyorum ve veritabanında bulunamadı e-postaya dönüyorum ama aslında dabatase.E-posta adresi codeigniter ile çalışıyor 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; 

} 

Kontrolör

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

    } 

} 

Bunu düzeltmek için bana yardım edin. Eğer daha fazla ayrıntı gerekiyorsa bana bildirin

+0

ilk? “echo $ this-> input-> post ('email');' veya 'print_r ($ _ POST);' – devpro

+0

@devpro giriş değerini yankılamak için kullanılır ve girdiğim değerin gösterilmesini sağladı. –

+0

, 'return ($ result-> num_rows() === 1)' den daha mı? true: false; ' – devpro

cevap

1
Sen olarak modeliniz fonksiyon gövdesini değiştirmek gerekir

:

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

bu çizgiyi değişiyorum:

u eposta değer elde tüm onay r
return $result->num_rows() > 0 ? true : false;