2016-06-20 6 views
0

preg_match()は入力データの検証にそれを単独で使用する信頼できる機能ですか?妥当性確認のためだけに(私はサニタイズとエスケープに関する話ではない)。ユーザー入力のデータ検証の代替手段はありません

例: ユーザー入力からの文字と数字のみを許可します。これが確実に起こるように私はpreg_match("/^[a-zA-Z0-9]*$/",$_POST["input"])を使用します。クライアントサイド(js)とfilter_input()(php)を除いて、のバリデーションには、データを検証する他の方法がありますか?

おかげ

編集:私は非常に信頼性の高い方法を意味し(最高の)、私の周り検証するが、他の方法を知っています。

+3

他の方法や他の方法がある場合は、あなたの質問ですか?私の意見ではいいですね。他の方法、はい。各文字をループし、is_numeric()またはctype_alpha()を使用することができます。しかしそれは良くありません – Andreas

+0

あなたの編集後、私は検証を行うための "最良の"方法はかなり主観的だと思います。 –

+0

あなたのregxは空文字列も許可します '/^$ /' – ArtisticPhoenix

答えて

2

filter_inputまたはfilter_varを使用して検証してください。あらかじめ定義された範囲validation filtersを使用するか、filter callbackでカスタムフィルタを指定することができます。

+1

文字と数字に一致するフィルタはありません –

+0

はい、存在します - FILTER_VALIDATE_REGEXP –

+0

素敵な、 –

関連する問題