0

私は、オンライン アカウントを登録している事業者に関する特定の詳細を取得するために、自分の Web サイトで使用するフォームを検証中です。

次の種類の情報を正しく検証する方法について少しアドバイスを得るために、この質問を書いています。

これを説明するために、一連のデータ型と、私が念頭に置いていた html 検証をリストします。これは、フォームが常に正しく検証されるようにするために、一連の php 検証で再利用できますが、私の意見では、標準の html 検証は、独自の css を適用して達成できたものよりも優れています。

名 - ^[a-zA-Z -]{1,120}(az、1 ~ 120 文字、大文字または小文字)

苗字 -^[a-zA-Z -]{1,120}

メールアドレス - ^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$(主に使用される .com および .co.za ドメインを含む検証)

これらの検証パターンの改善に関する提案や、より標準的に使用されている他のいくつかの提案があれば、その情報をいただければ幸いです。

また、それらを使用すべき理由または使用すべきでない理由に関する情報も素晴らしいでしょう。

ありがとう!!

4

1 に答える 1

2

名前の「検証」では、ラテンアルファベットを使用しないすべての言語が除外されます。なんで?そこに数字がないことを確認してそのままにしておけばいいと思います。ラテン語の名前を持たない人がサイトを使用できるようにする場合は、(データベース?)をUTF-8などの文字セットにする必要があり、すべてを許可する必要があります。失礼な言葉を削除しようとしても、スカンソープ問題が発生する可能性があります。

正規表現を使用して電子メールを検証しないでください。アドレスにメール/pingを送信し、その人にリンクをクリックしてもらいます。正規表現を使用して電子メールアドレスを検証することは技術的に不可能であり、開発されたより優れたアドレスはばかげている可能性がありますラテン語以外のドメイン名が存在し、名前と同様に、ラテンアルファベットを使用して必要なものが含まれていることを確認することはできません。

また、ICANNは現在いくつかの新しいgTLDを販売しているため、利用可能な名前空間が大幅に増加し、チェックせずに何かが実際に存在することを保証することはできません。

もちろん、データベースを使用している場合は、プリペアドステートメントを使用してSQLインジェクションを停止します。

于 2012-06-17T12:14:13.663 に答える