2016-03-29 32 views
0

Hey :) Also ich versuche zu überprüfen, ob ein Benutzer bereits registriert ist oder nicht mit ihrer E-Mail-Adresse. Die E-Mail ist ein eindeutiges Feld in der Datenbank. Das Problem, das ich habe, ist, wenn ich es überprüfe (wenn die E-Mail in der Tabelle existiert, wird false zurückgegeben und eine Nachricht wird an den Benutzer gesendet), num_rows() gibt immer false zurück, selbst wenn die eingegebene E-Mail nicht existiert Der Tisch;E-Mail existiert bereits in der Datenbank Codeigniter

Ich weiß nicht, ob es ein Problem mit der Post gibt, aber wenn ich den E-Mail-Teil auskommentieren und registrieren, wird es funktionieren und wenn die E-Mail ein Duplikat ist, wird der 1062 Fehler angezeigt.

das Modell funtion check()

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

und die Steuerung:

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

    } 

auch wenn die Tabelle leer ist, wird die Meldung mit "E-Mail bereits registriert" erscheint

danken, dass Eure Hilfe.

+2

hinzufügen Was Sie in Emailcheck-Funktion zurück, wenn num_rows <= 0? – Veniamin

+1

Fügen Sie diese Zeile zu checkEmail() -Funktion nach if Bedingung 'sonst zurück wahr' –

+1

Versuchen Sie zu 'var_dump ($ checkEmail)' in Controller, und für Prüfergebnisse, vielleicht Problem dort – Veniamin

Antwort

1

in checkEmail() Funktion eine else-Anweisung

$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; 
    }else{ 
    return true; 
    } 
+0

Danke, das war was ich vermisst wurde :) – Nynaeve

Verwandte Themen