2016-03-18 14 views
1

私はパスワードを忘れてしまったページでパスワード機能を忘れてしまいました。私はチェックが必要です。電子メールはすでにデータベースに存在しますが、電子メールのチェックに問題があります。ダバタゼ。電子メールが存在する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; 

} 

コントローラ

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

    } 

} 

私はこの問題を解決するのに役立ちます。私のようにあなたが

+0

すべてのチェックrの最初のuは、電子メールの値を取得しますか? – devpro

+0

@devpro私は入力値をエコーし​​て、入力した値を表示してそれを送信しました。 –

+0

'return($ result-> num_rows()=== 1)を使うよりも? true:false; ' – devpro

答えて

1

詳細が必要な場合は、お使いのモデル関数本体を変更する必要があります知ってみましょう:

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; 
関連する問題