0

だから私はタンク認証を設定したばかりです、私はまだ何も変更していないので、すべてがデフォルトになっているはずです。それは完全にうまく機能します。ただし、メールがログインできるようにするには、特定のドメインが必要です。今のところ私はGmailと言います。では、ユーザーが登録する前に、メールアドレスに@gmail.comが含まれていることを確認する方法を教えてください。有効な電子メールエラーメッセージがどこにあるかを見つけましたが、それを変更できますが、有効な電子メールの実際のチェックがどこにあるかわかりません。

4

1 に答える 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 に答える