2

Zend Framework 2.1 を使用しています

Zend フォームの電子メール フィールドのドメインまたは電子メール アドレスのブロックリストを作成したいと考えています。Zend InputFilter でできると思います。しかし、私はそれを行う方法がわかりません

4

1 に答える 1

0

InputFilter は、入力データのグループを検証してサニタイズすることを目的としており、バリデーターとフィルターを使用してこの目標を達成します。

一部のドメインをブロックするために必要なのは、カスタム バリデータです。

ここで注意が必要なのは、メールアドレスからドメインを抽出する必要があることです。これは、EmailAddress バリデーターが既に行っていることです (それはうまくいきます)。

幸いなことに、EmailAddress バリデーターは、内部のホスト名バリデーターを使用して、ドメインが有効であることを確認します。

これが私が提案するものです:

  • Zend\Validator\Hostname を拡張して、独自のバリデータを作成します。isValid() メソッドをオーバーロードすると、カスタム ブロッキング ロジックをバリデータに追加できます。独自のロジックを確認した後、親メソッドの値を返すことを忘れないでください。
  • カスタムのホスト名バリデーターを使用するように EmailAddress バリデーターを構成します (setHostnameValidator() メソッドを使用するか、コンストラクターで構成を渡すことによって)。
  • InputFilter で EmailAddress バリデータを使用します。これを行う方法の詳細については、ドキュメントを参照してください: http://framework.zend.com/manual/2.2/en/modules/zend.input-filter.intro.html

お役に立てれば。

于 2014-02-07T08:45:43.257 に答える