2013-04-09 2 views
1

유효성 검사가 실패 할 때 CodeIgniter에서 양식 값을 유지하는 데 이상한 오류가 발생했습니다. 양식에서 많은 필드를 사용하고 있는데 그 중 하나는 전자 메일입니다. 형태 Codeigniter가 전자 메일 필드 값을 유지하지 않음

function validateEmail($email){ 
     $this->load->helper('email'); 
     if((!valid_email($email))){ 
      $this->form_validation->set_message('validateEmail', 
       'The E-Mail you entered is invalid'); 
      return false; 
     } 
    } 

, 내가 다음 코드를 사용하고 다음과 같이

$this->form_validation->set_rules('email','E-Mail', 
'trim|required|xss_clean|is_unique[user.user_email]|callback_validateEmail'); 

validateEmail 기능은 다음과 같습니다 : I는 전자 메일에 대한 유효성 검사 규칙을 구현 한

전자 메일 필드 :

<td align="left"> 
    <input type="text" name="email" id="email" 
      value="<?php echo set_value('email');?>"> 
</td> 

전자 메일 값은 그대로 유지됩니다. 사용자가 "abc123"또는 "abc123 @"와 같은 잘못된 전자 메일 값을 입력합니다. 그러나 사용자가 올바른 전자 메일 주소 (예 : "[email protected]")를 입력하고 다른 필드의 오류로 인해 양식 유효성 검사가 실패하면 전자 메일 필드의 값이 보존되지 않고 사라집니다.

나는 이것이 실패하는 이유를 전혀 모른다. 누군가가 약간의 빛을 던질 수 있습니까?

미리 감사드립니다.

+3

CodeIgniter는 A ['valid_email' 규칙]이 (http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#rulereference) 기본적으로 폼 검증 라이브러리에 내장 - 아니 콜백이 필요합니다. –

답변

1

유효한 이메일에 대해 함수가 true를 반환하지 않습니다.

이메일이 유효하면 true를 반환하십시오.

function validateEmail($email){ 
    $this->load->helper('email'); 
    if((!valid_email($email))){ 
    $this->form_validation->set_message('validateEmail','The E-Mail you entered is invalid'); 
    return false; 
    } 
return true; 
} 
+0

와우! 감사! 그것은 작동하지만 set_value가 값을 반환하는 것과 관련이 있는지 설명 할 수 있다면 좋을 것입니다. 어쨌든 고마워 :) –

관련 문제