Maison  >  Article  >  développement back-end  >  Conseils de filtrage de données PHP : Comment utiliser la fonction filter_input_array pour valider par lots les entrées utilisateur

Conseils de filtrage de données PHP : Comment utiliser la fonction filter_input_array pour valider par lots les entrées utilisateur

王林
王林original
2023-07-29 21:09:29875parcourir

Conseils de filtrage de données PHP : Comment utiliser la fonction filter_input_array pour valider par lots les entrées utilisateur

Dans le développement Web, les entrées utilisateur ne sont souvent pas fiables. Pour garantir la sécurité et l'intégrité des données, nous devons valider et filtrer les entrées des utilisateurs. PHP fournit la fonction filter_input_array, qui peut nous aider à valider les entrées utilisateur par lots.

La fonction filter_input_array accepte trois paramètres : le type d'entrée (INPUT_GET, INPUT_POST, INPUT_COOKIE, etc.), le tableau de règles de filtrage et s'il faut autoriser le tableau en entrée (INPUT_GET est le type d'entrée par défaut). Renvoie un tableau filtré, ou false si une erreur se produit.

Ce qui suit est un exemple de code qui utilise la fonction filter_input_array pour vérifier par lots les entrées de l'utilisateur :

<?php
// 设置输入过滤规则
$filters = array(
    'username'  => FILTER_SANITIZE_STRING,
    'email'     => FILTER_VALIDATE_EMAIL,
    'age'       => array(
        'filter'    => FILTER_VALIDATE_INT,
        'options'   => array('min_range' => 18, 'max_range' => 60)
    ),
    'website'   => array(
        'filter'    => FILTER_VALIDATE_URL,
        'flags'     => FILTER_NULL_ON_FAILURE
    )
);

// 获取过滤后的输入数据
$input = filter_input_array(INPUT_POST, $filters);

// 验证是否发生错误
if ($input === false) {
    die('输入数据验证失败!');
}

// 输出过滤后的输入数据
echo "用户名:" . $input['username'] . "<br>";
echo "邮箱:" . $input['email'] . "<br>";
echo "年龄:" . $input['age'] . "<br>";
echo "个人网站:" . ($input['website'] ?? '未填写') . "<br>";
?>

Dans cet exemple, nous avons défini quatre règles de filtrage des entrées : le nom d'utilisateur est filtré à l'aide de FILTER_SANITIZE_STRING, l'e-mail est vérifié à l'aide de FILTER_VALIDATE_EMAIL, l'âge est vérifié et défini à l'aide de la plage de valeurs FILTER_VALIDATE_INT, le site Web utilise FILTER_VALIDATE_URL pour vérifier et renvoie null en cas d'échec.

En appelant la fonction filter_input_array et en spécifiant le type d'entrée comme INPUT_POST, nous pouvons obtenir les données POST soumises par l'utilisateur et les filtrer et les vérifier en même temps. Si une entrée échoue à la validation, la fonction filter_input_array renvoie false.

Une fois la vérification réussie, nous pouvons traiter et utiliser les données filtrées selon nos besoins. Dans l'exemple de code, nous affichons le nom d'utilisateur, l'e-mail, l'âge et le site Web personnel filtrés.

L'utilisation de la fonction filter_input_array pour vérifier par lots les entrées de l'utilisateur peut nous aider à réduire efficacement le nombre de codes de vérification et à renforcer la sécurité de l'application. Parallèlement, nous pouvons également ajouter des règles de filtrage personnalisées pour répondre à des besoins spécifiques.

Pour résumer, en utilisant rationnellement la fonction filter_input_array, nous pouvons améliorer notre contrôle et la sécurité des entrées utilisateur, réduire le temps de développement et le volume de code, et améliorer la fiabilité et la robustesse de l'application.

J'espère que cet article pourra vous aider à apprendre à utiliser la fonction filter_input_array pour vérifier les entrées des utilisateurs par lots et améliorer la sécurité et la fiabilité des applications Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn