2012-09-04 2 views
0

안녕하세요, codeigniter 폼 유효성 검사를 사용하고 있습니다. 내 libraray에서codeigniter 폼 유효성 검사에서 'CI'를 사용할 때 사용자 지정 유효성 검사 메서드가 작동하지 않습니다.

내가 양식 유효성 검사

$this->ci->form_validation->set_rules ('businessemail', 'Business Email', 'required|xss_clean|min_length[6]|callback_valid_email_check'); 

valid_email_check 기능을 설정

public function valid_email_check($email_address) 
{ 
    if(!trim($email_address)) 
    { 
     return TRUE; 
    } 
    $email_explode = explode("@", $email_address); 

    $valid = preg_match("/^(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$/",trim($email_explode[0])); 

    if(!$valid) 
    { 
     $this->ci->form_validation->set_message('valid_email_check', 'The %s field contains invalid charaters'); 
     return FALSE; 
    } 
    else 
    { 
     return TRUE; 
    } 
} 

것은

required|xss_clean|min_length[6] 

가 지정 유효성 검사 메시지 유일한 것은, 제대로 검증이다 작동 안됨 .

내가 여기에 무슨 짓을 한 내가 문제가, CI을 할 수 있습니다 사용하여 생각, 방법이 문제를 해결하기 위해, 사전에 감사

+2

왜 내장 된 valid_email 메서드를 사용하지 않습니까? –

+0

@shayan, 몇 가지 사용자 지정 유효성 검사를 추가하고 싶습니다 –

답변

0

은 어떻게 지정 유효성 검사가 작동하지 않는 알 수 있습니까?

아래 내용은 무엇입니까?

public function valid_email_check($email_address) 
{ 
    this->ci->form_validation->set_message('valid_email_check', 'The %s field contains invalid charaters'); 
    return FALSE; 
} 

또한 유효한 _email_check은 어디에 있습니까? 즉 어떤 파일입니까?

+0

valid_email_check 함수가 동일한 파일 n public function valid_email_check() –

+0

아무 것도 발생하지 않고 유효성 검사 만 무시합니다 –

+0

CI를 폼 유효성 검사없이 직접 실행할 때 함수가 작동합니까? ? false 또는 true를 기반으로 무언가를 반향 시키도록 설정하십시오. – Mudshark

1

라이브러리에서 유효성 검사 규칙을 설정한다고 말합니다. CodeIgniter의 사용자 가이드에 따르면이 작업은 controller에서 수행하거나 config file에 저장할 수 있습니다.

이 기능의 목적은 무엇입니까? - 당신이 함수에 빈 문자열을 전달하는 경우

if(!trim($email_address)) 
{ 
    return TRUE; 
} 

이 논리는 예 -에 대한, 나에게 조금 뒤로 것, 그것은 TRUE을 반환합니다. 내가 요점을 놓치지 않는 한, 당신이 성취하려고하는 것이 아닙니다.

$this->ci->form_validation->set_rules 매개 변수에 trim을 추가하고 valid_email_check 기능에서 제거 할 수 있습니다.

CI의 valid_email 규칙을 사용하는 것이 잘못된 이유는 무엇입니까? 당신이 정당한 이유가 없다면 바퀴를 재발 명할 필요가 없습니다.

이 해결책이 있습니까? - 당신이 form_validation 라이브러리를 확장하고 당신이, 당신은 callback_으로 접두사하지 않아도되는 기능 곳이면

$this->ci->form_validation->set_rules ('businessemail', 'Business Email', 'trim|required|xss_clean|min_length[6]|valid_email'); 

.

관련 문제