Maison  >  Article  >  développement back-end  >  Conseils de programmation PHP : comment gérer le filtrage des données de formulaire

Conseils de programmation PHP : comment gérer le filtrage des données de formulaire

王林
王林original
2023-08-20 12:52:48738parcourir

Conseils de programmation PHP : comment gérer le filtrage des données de formulaire

Conseils de programmation PHP : Comment gérer le filtrage des données des formulaires

Dans le développement Web, les formulaires sont un moyen d'interaction très courant. Les utilisateurs saisissent des données via des formulaires et soumettent ces données au serveur pour traitement. Cependant, étant donné que la saisie de l'utilisateur est incontrôlable, nous devons filtrer et vérifier efficacement les données du formulaire pour garantir la sécurité et la fiabilité des données. Cet article présentera plusieurs techniques de programmation PHP couramment utilisées pour vous aider à traiter le filtrage des données de formulaire.

  1. Utilisation des fonctions de filtre
    PHP fournit une série de fonctions de filtre qui peuvent être utilisées pour filtrer différents types de données. Voici quelques fonctions de filtre couramment utilisées et leur utilisation :
  • filter_input() : Cette fonction peut filtrer GET, POST, COOKIE et d'autres données, et spécifier le type de filtre. Par exemple, nous pouvons utiliser filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING) pour filtrer les données POST nommées 'name' et les convertir en chaîne. FILTER_SANITIZE_STRING est utilisé pour supprimer les balises HTML et les caractères spéciaux. filter_input(): 这个函数可以过滤GET、POST、COOKIE等数据,并指定过滤器类型。例如,我们可以使用filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING)来过滤名为'name'的POST数据,并将其转换为字符串。FILTER_SANITIZE_STRING用于移除HTML标签和特殊字符。
  • filter_var(): 这个函数可以过滤任意类型的变量,并指定过滤器类型。例如,我们可以使用filter_var($email, FILTER_VALIDATE_EMAIL)来验证一个电子邮件地址是否合法。FILTER_VALIDATE_EMAIL用于验证电子邮件地址。
  • filter_var_array(): 这个函数可以过滤一个数组中的多个变量。例如,我们可以使用filter_var_array($_POST, $filters)来过滤$_POST数组中的多个数据,并指定每个数据的过滤器类型。$filters是一个关联数组,其中键是数据的名称,值是过滤器类型。

以下是一个示例代码,演示如何使用以上过滤函数过滤表单数据:

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$filters = array(
    'name' => FILTER_SANITIZE_STRING,
    'email' => FILTER_VALIDATE_EMAIL
);
$data = filter_var_array($_POST, $filters);
  1. 使用正则表达式
    正则表达式是一种强大的工具,可以用来匹配和过滤字符串。使用正则表达式,您可以定义一个模式,然后使用模式来验证字符串是否匹配。以下是一个示例代码,演示如何使用正则表达式过滤表单数据:
$name = $_POST['name'];
if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
    echo "只允许字母和空格!";
}

在上面的代码中,使用正则表达式/^[a-zA-Z ]*$/

filter_var() : Cette fonction peut filtrer tout type de variable et spécifier le type de filtre. Par exemple, nous pouvons utiliser filter_var($email, FILTER_VALIDATE_EMAIL) pour vérifier si une adresse e-mail est légitime. FILTER_VALIDATE_EMAIL est utilisé pour vérifier les adresses e-mail.
  1. filter_var_array() : Cette fonction peut filtrer plusieurs variables dans un tableau. Par exemple, nous pouvons utiliser filter_var_array($_POST, $filters) pour filtrer plusieurs données dans le tableau $_POST et spécifier le type de filtre pour chaque donnée. $filters est un tableau associatif où les clés sont les noms des données et les valeurs sont les types de filtres.
  2. Voici un exemple de code qui montre comment filtrer les données d'un formulaire à l'aide de la fonction de filtre ci-dessus :
$name = $_POST['name'];
$email = $_POST['email'];

$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
$stmt->close();

    Utilisation d'expressions régulières

    Les expressions régulières sont un outil puissant qui peut être utilisé pour faire correspondre et filtrer les chaînes. À l'aide d'expressions régulières, vous définissez un modèle, puis utilisez ce modèle pour vérifier que les chaînes correspondent. Voici un exemple de code qui montre comment utiliser des expressions régulières pour filtrer les données d'un formulaire :


    rrreee

    Dans le code ci-dessus, utilisez l'expression régulière /^[a-zA-Z ]*$/ chaînes contenant uniquement des lettres et des espaces. Si la correspondance échoue, un message d'invite est affiché.

    🎜Prévention des injections SQL🎜Lors du traitement des données de formulaire, nous devons faire attention à prévenir les attaques par injection SQL. Pour empêcher l'injection SQL, nous devons utiliser des instructions préparées et des requêtes paramétrées pour gérer les requêtes de base de données. Voici un exemple de code qui montre comment empêcher l'injection SQL : 🎜🎜rrreee🎜 Dans le code ci-dessus, nous utilisons des instructions préparées et la méthode bind_param() pour insérer les données du formulaire dans la base de données. Le premier paramètre de la méthode bind_param() est le type de données, et « ss » signifie que les deux paramètres sont des chaînes. 🎜🎜Résumé : 🎜Lors du traitement des données d'un formulaire, le filtrage des données est essentiel. L'utilisation de fonctions de filtrage, d'expressions régulières et de technologies de prévention des injections SQL peuvent protéger efficacement la sécurité et la fiabilité des données. Vous devez choisir la méthode de filtrage appropriée en fonction des besoins réels et faire attention à la gestion des erreurs et des exceptions dans le code. 🎜🎜Ce qui précède est une introduction aux compétences en programmation PHP : comment gérer le filtrage des données de formulaire. J'espère que cela vous sera utile ! 🎜

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