Web アプリケーションを開発する場合、フォームはユーザーと対話するための重要な手段です。ユーザー入力を適切に検証することは、データのセキュリティと整合性を確保するための重要なステップです。 PHP は、ユーザー入力の検証とフィルタリングをより簡単かつ効率的に行うために、filter_input 関数を提供します。この記事では、filter_input 関数を使用してユーザー入力を検証する方法を紹介し、実用的なコード例を示します。
filter_input 関数は、ユーザー入力のフィルターと検証に使用され、入力タイプ (ソース)、入力名、フィルター タイプの 3 つの主要なパラメーターを受け入れます。基本的な例を次に示します。
$input = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($input) {
echo '有効な電子メールアドレス。';
} else {
echo '请输入一个有効な電子メールアドレス。';
}この例では、filter_input 関数を使用して、POST メソッドを通じて送信された電子メール フィールドを検証します。 FILTER_VALIDATE_EMAIL は、電子メール形式が有効かどうかを確認するために使用されます。有効な場合は「有効な電子メール アドレス」が出力され、そうでない場合は正しい電子メール アドレスを入力するよう求められます。
filter_input は、さまざまなタイプの入力を検証するための複数のフィルター タイプをサポートしています。一般的に使用されるフィルターは次のとおりです。
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if (!$email) {
echo '请输入一个有効な電子メールアドレス。';
}$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
if (!$age) {
echo '有効な年齢を入力してください。';
} $url = filter_input(INPUT_POST, 'url', FILTER_VALIDATE_URL);
if (!$url) {
echo '有効な値を入力してくださいURL住所。';
}$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
if (!$name) {
echo '有効な値を入力してください姓名。';
}組み込みフィルターに加えて、ユーザー入力を検証するカスタム関数を定義することもできます。カスタム関数は 1 つのパラメーターを受け取り、検証結果 (true または false) を返します。例は次のとおりです。
function validate_username($username) {
// ユーザー名は文字で始まる必要があります,文字のみを含めることができます、数字とアンダースコア
return preg_match('/^[a-zA-Z][a-zA-Z0-9_]*$/', $username);
}
$username = filter_input(INPUT_POST, 'username', FILTER_CALLBACK, array('options' => 'validate_username'));
if (!$username) {
echo '有効な値を入力してください用户名。';
}上記の例では、 validate_username 関数は正規表現を使用して、ユーザー名が文字で始まり、文字、数字、アンダースコアのみを含んでいるかどうかを検証します。次に、FILTER_CALLBACK フィルターを介してカスタム関数を呼び出し、ユーザー入力を検証します。
この記事では、基本的な使用法、一般的なフィルターの種類、カスタム関数の例など、ユーザー入力検証に PHP の filter_input 関数を使用する方法を紹介します。ユーザー入力を正しく検証することは、データの整合性とアプリケーションのセキュリティを確保するために重要であり、これらのヒントは、Web アプリケーションの品質とユーザー エクスペリエンスの向上に役立ちます。