2012-08-30 5 views
0

그래서 저는 탱크 인증을 설정했습니다. 아직 아무것도 변경하지 않았으므로 모든 것이 기본값이어야합니다. 완벽하게 잘 작동합니다. 그러나 이메일에 로그인 할 수 있도록 특정 도메인을 요구하고 싶습니다. 지금은 Gmail을 말할 것입니다. 그래서 어떻게하면 사용자가 등록하기 전에 이메일 주소에 @ gmail.com이 있는지 확인하도록 할 수 있습니다. 유효한 전자 메일 오류 메시지가있는 곳을 찾았지만 변경할 수는 있지만 유효한 전자 메일이 실제로 어디에 있는지 확인할 수 없습니다.PHP : 탱크 인증 로그인 할 때 특정 이메일 주소가 필요합니다

+0

HTTPS를 : //github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php 132 행 (유효한 _ 이메일) – Rufinus

답변

2

탱크 인증은 양식 유효성 검사 클래스에있는 유효성 검사 규칙 인 valid_email을 사용합니다.

확실히 이상한 일이지만, callback validation function을 만들고이를 등록 페이지의 양식 유효성 검사 규칙에 추가 할 수 있습니다.

은 기본적으로 ends_with 규칙의 것과 동일하지만, "@"추가 :

// Check if the inputs last characters matches the parameter 
function is_email_domain($input, $domain) { 
    $domain_str = '@'.$domain; 
    $result = strpos($input, $domain_str) === (strlen($input) - strlen($domain_str)); 
    if (! $result) $this->form_validation->set_message('is_email_domain', 'The %s field must be a %s email address'); 
    return $result; 
} 

그래서 컨트롤러에 콜백 함수를 작성하고 검증에 추가 :

$this->form_validation->set_rules(
    'email', 
    'Email', 
    'trim|required|xss_clean|valid_email|callback_is_email_domain[gmail.com]' 
); 
+0

하하! 이것은 큰 감사했습니다! 또한 좋은 학습 경험. 심층 대응에 감사드립니다. 요청의 기이함에 관한 한, 그것은 나의 학교 (ish)를위한 웹 사이트를위한 것이고 우리는 그들이 학생임을 확신 할 수 있도록 등록하기 위해 유효한 학교 이메일을 갖기를 원합니다. 물론 그것은 Gmail 일뿐만 아니라 동일한 일이 될 것입니다. 다시 한 번 감사드립니다! – LiverpoolFTW

관련 문제