だから私はタンク認証を設定したばかりです、私はまだ何も変更していないので、すべてがデフォルトになっているはずです。それは完全にうまく機能します。ただし、メールがログインできるようにするには、特定のドメインが必要です。今のところ私はGmailと言います。では、ユーザーが登録する前に、メールアドレスに@gmail.comが含まれていることを確認する方法を教えてください。有効な電子メールエラーメッセージがどこにあるかを見つけましたが、それを変更できますが、有効な電子メールの実際のチェックがどこにあるかわかりません。
1 に答える
2
Tank auth はvalid_email
、Form Validation クラスにある CI のデフォルトの検証ルールを使用しています。
これは間違いなく奇妙なことですが、コールバック検証関数を作成して、登録ページのフォーム検証ルールに追加できます。
これは基本的に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]'
);
于 2012-08-30T22:44:17.440 に答える