그래서 저는 탱크 인증을 설정했습니다. 아직 아무것도 변경하지 않았으므로 모든 것이 기본값이어야합니다. 완벽하게 잘 작동합니다. 그러나 이메일에 로그인 할 수 있도록 특정 도메인을 요구하고 싶습니다. 지금은 Gmail을 말할 것입니다. 그래서 어떻게하면 사용자가 등록하기 전에 이메일 주소에 @ gmail.com이 있는지 확인하도록 할 수 있습니다. 유효한 전자 메일 오류 메시지가있는 곳을 찾았지만 변경할 수는 있지만 유효한 전자 메일이 실제로 어디에 있는지 확인할 수 없습니다.PHP : 탱크 인증 로그인 할 때 특정 이메일 주소가 필요합니다
0
A
답변
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
HTTPS를 : //github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php 132 행 (유효한 _ 이메일) – Rufinus