web-dev-qa-db-ja.com

is_email()対sanitize_email()

ユーザーがデータベースに保存する電子メールアドレスを入力することを許可している場合、is_email()またはsanitize_email()を使用する必要がありますか

例.

update_user_meta( $user_id, $social_site, sanitize_email( $_POST[$user_input] ) );
3
user54141

is_email()は提供された文字列(電子メールアドレス)を受け取り、それが実際に電子メールアドレスであること、そして文字列に不正な文字が含まれていないことを確認するためにチェックを実行します。それは単にあなたが提供した文字列の中で何も変更しないでしょうが、文字列がすべての関数チェックに合格するならばtrueを、そうでなければfalseを返します。

sanitize_email()は提供された文字列を受け取り、Eメールアドレスで許可されていない文字を取り除き、許可されている文字のみを返します。

それで、あなたが以下のようなEメールである必要があるストリングを持っていたなら:user"[email protected]

文字列に電子メールアドレスで使用できない文字が含まれているため、is_email()falseを返します。

sanitize_email()[email protected]を返します

user"[email protected]を取り、それを最初にsanitize_email()関数、次にis_email()関数の順に実行すると、この場合は無効な文字がすべて文字列から削除され、is_email()チェックに合格するのでtrueが返されます。

Is_email()の両方を使用して、ユーザーが適切な電子メールアドレスを送信したかどうかと、データベースにコミットする前にsanitize_email()関数をスクリプトの最新の時点で実行して安全であることを確認することをお勧めします。

5
Waylon Fourie