2014-12-04 1 views
4

CodeIgniter에서 응용 프로그램을 작성하고 있습니다. CodeIgniter에서 db와 전자 메일을 비교하는 방법을 알고 있습니다. 제발 도와주세요.CodeIgniter를 사용하여 db에 이미 존재하는 전자 메일을 확인하는 방법

컨트롤러 이메일 alreay 존재 여부 wheather를 이메일로하는 방법

public function signup() 
{ 
    $this->load->view('signup'); 

} 
public function savedata(){ 

$this->load->library('form_validation');   
$this->form_validation->set_rules('firstname', 'firstname', 'required'); 
$this->form_validation->set_rules('lastname', 'lastname', 'required'); 


if ($this->form_validation->run() == TRUE) // Only add new option if it is unique 
{  
    $result = $this->account_model->insert(); 
    if($result > 0) 
    { 
    $data['message'] = "Added successfully";  

    $this->load->view('signup',$data); 
    } 
    else 
    { 
    $this->index(); 
    } 
} 
else 
{ 
    $this->load->view('signup'); 
} 
} 

.

+0

당신이 통과 않는 이메일에 고유 인덱스를 양식 유효성 검사

$this->form_validation->set_rules('email','Email','required|valid_email|is_unique[users.email]'); 

이 줄을 추가하고 필요로해야? –

+0

'is_unique' 검증 규칙을 확인하십시오 –

+0

답장을 보내 주셔서 대단히 감사합니다. 나는 대답을 얻었다. – Vijaykarthik

답변

3

규칙 추가 : 같은 컨트롤러에서

$this->form_validation->set_rules('email', 'Email', 'callback_rolekey_exists'); 

: 모델에서

function rolekey_exists($key) { 
    $this->roles_model->mail_exists($key); 
} 

function mail_exists($key) 
{ 
    $this->db->where('email',$key); 
    $query = $this->db->get('users'); 
    if ($query->num_rows() > 0){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 

Reference

+1

이미'is_unique' 규칙이 있습니다. 자신을 만들 필요가 없습니다. –

+0

그리고 콜백 함수에서'true/false'를 반환해야합니다. '사용자 정의 콜백에 대한 에러 메시지 '를 정의하십시오 .... @DamienPirsy가 언급 한 것처럼 is_unique는 최선의 접근법입니다. –

6

가정 당신은 user 테이블이 d email 칼럼 그래서 당신은 당신의 email

체크 Documentation

관련 문제