PHP でフォームを検証するための最善かつ最も安全な方法は何でしょうか? 例: 長さ、電子メール、空っぽ、特殊文字など。
これに filter_var を使用しても安全ですか? または、関数でそれらをすべて手動で 1 つずつ定義する必要があります。または他の方法があります。
申し訳ありませんが、フォームを作成するときにこの質問に何度も遭遇するので、確認したいだけです。
検証は、クライアント側とサーバー側の両方で行う必要があります。クライアント側の検証により、サーバー側のスクリプトで発生するエラーが少なくなります (またはゼロになる可能性があります)。通常、サーバー側で多くのエラーが発生するのは望ましくないため、これは望ましいことです。
そうは言っても、PHP で入力を検証する方法はたくさんあります。それは文脈に依存します。たとえば、空であることの確認 (ご自身でおっしゃったように)、または入力が数値かどうか、指定された値の長さ (たとえば、最小長が適用される場合があります)、または電子メール アドレスが本当に電子メール アドレスであるかどうかを確認します! filter_var() は常に十分であるとは限りません。
サーバー側で正規表現を使用できます。しかし、JavaScript を使用してクライアント側のフォーム フィールドを検証することを検討します。フィールドが正常かどうかを確認するためだけにサーバーから情報を取得したくはありません。無駄なサーバー時間を消費します。
最良の検証プロセスは、正規表現でデータを検証することだと思います。必要な文字数 (少なくともまたは最大)、許可される文字と許可されない文字を定義でき、データの正確な形式を定義することもできます。
検証は両側で行う必要があります。サーバーサイドとクライアントサイド。クライアント側で検証を行い、サーバー側の仕事を容易にします。クライアント側で検証を行っても、悪意のある人々がコードをハッキングする可能性があります。サーバー側にも検証が必要です。
filter_var 関数も便利です。メールアドレスの検証に使用しています。