Maison >développement back-end >tutoriel php >Meilleures pratiques pour la validation des données avec PHP

Meilleures pratiques pour la validation des données avec PHP

WBOY
WBOYoriginal
2023-08-25 11:51:39743parcourir

Meilleures pratiques pour la validation des données avec PHP

Dans le développement web, la vérification des données est un maillon très important. En tant que l'un des langages de programmation couramment utilisés dans le développement Web, PHP possède également ses propres méthodes de vérification des données et ses meilleures pratiques.

Ce qui suit est une introduction aux meilleures pratiques d'utilisation de PHP pour la validation des données.

1. Vérification des données frontales

Avant que les données ne soient transmises au serveur, nous pouvons utiliser des langages frontaux​​tels que JavaScript pour vérifier les données. Cela évite les requêtes inutiles et accélère la réponse du serveur. Mais la validation frontale présente également certains inconvénients. Par exemple, les règles de validation frontale peuvent être contournées, il ne s'agit donc en fait que d'un simple filtre.

2. Filtrer les données d'entrée

Côté serveur, nous devons à nouveau filtrer les données. PHP fournit certaines fonctions de filtrage, telles que filter_var() et filter_input().

La fonction filter_input peut filtrer les données GET, POST ou COOKIE soumises, et filter_var peut filtrer les variables spécifiées. Ces fonctions peuvent filtrer différents types de données, comme valider un email, vérifier s'il s'agit d'un entier, vérifier s'il s'agit d'une URL, etc. Utilisez ces fonctions pour éviter l'injection SQL, XSS et autres problèmes de sécurité.

Par exemple :

$email = $_POST['email'];

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Invalid email format";
} else {
  echo "Email is valid";
}

Ici, nous utilisons la fonction filter_var et la constante FILTER_VALIDATE_EMAIL pour vérifier si l'adresse email est légale.

3. Utiliser des expressions régulières

Lors du filtrage des données, nous pouvons également utiliser des expressions régulières pour faire correspondre les données. La fonction preg_match() de PHP nous permet d'utiliser des expressions régulières pour la correspondance et la vérification des données.

Par exemple :

$pattern = "/^[a-zA-Z0-9]{6,}$/";
$password = $_POST['password'];

if (preg_match($pattern, $password)) {
  echo "Password is valid";
} else {
  echo "Invalid password format";
}

Ici, nous utilisons des expressions régulières pour vérifier que le mot de passe contient au moins six caractères et ne contient que des lettres et des chiffres.

4. Utilisez la bibliothèque de classes de vérification

Pour une logique de vérification de données complexe, nous pouvons utiliser la bibliothèque de classes de vérification. Ces bibliothèques de classes peuvent nous aider à établir rapidement des règles de vérification et à fournir des règles de vérification communes, telles que : non vide, longueur minimale et maximale et unicité.

Les bibliothèques de validation PHP courantes sont :

  • Validation PHP
  • Validation Respect
  • Composant Symfony Validator
  • Validation Laravel

En utilisant ces bibliothèques, nous pouvons rapidement implémenter une validation hautement personnalisable dans les règles de nos projets.

5. Règles de vérification personnalisées

Parfois, nous devons personnaliser certaines règles de vérification en fonction de la logique métier du projet. Dans ce cas, nous pouvons écrire un validateur personnalisé.

En définissant une classe qui hérite de la classe Validator de PHP, nous pouvons écrire nos propres règles de validation.

Par exemple :

use IlluminateValidationValidator;

class CustomValidator extends Validator {
  public function validateIsEven($attribute, $value, $parameters)
  {
    return $value % 2 == 0;
  }
}

$validator = new CustomValidator($data, $rules);

$validator->setCustomMessages([
  'is_even' => 'The :attribute must be even.'
]);

if ($validator->fails()) {
  // Handle validation errors
}

Dans cet exemple, nous avons personnalisé une règle de validation is_even pour vérifier si les données sont un nombre pair.

Réflexion : lorsque nous utilisons des règles de validation personnalisées, nous devons éviter les paramètres non définis, les paramètres par défaut et les paramètres d'entrée inconnus. À quoi d’autre devrions-nous prêter attention ?

6. Combinée à la gestion des erreurs

La vérification des données ne consiste pas seulement à vérifier les données elles-mêmes, mais doit également gérer les échecs de vérification. Lorsque des erreurs de validation se produisent, le message d'erreur doit être clair et concis.

PHP fournit certaines fonctions et classes qui peuvent être utilisées pour gérer les erreurs de validation, par exemple : la fonction validation_errors() est utilisée pour résumer les messages d'erreur :

$errors = validation_errors();

Le framework Laravel fournit un mécanisme de gestion des erreurs spécifique, qui est appelé en affichant un message d'erreur sous la forme "Gestion des erreurs de validation dans le navigateur". Il fournit également un mécanisme de « magasin de sessions basé sur la redirection » pour rediriger vers une page spécifique lors de la validation des erreurs.

7. Résumé

Ce qui précède présente les meilleures pratiques d'utilisation de PHP pour la validation des données. La validation des données est une partie très importante du développement Web. Lors du traitement des données, nous devons veiller à garantir la sécurité et l'exactitude des données. PHP fournit des fonctions et des classes qui peuvent être utilisées pour gérer facilement la validation des données. En outre, la gestion des erreurs de vérification est également une étape très critique. Les informations d'invite doivent être concises et claires afin que les utilisateurs puissent rapidement trouver et corriger les erreurs. Enfin, nous pouvons également utiliser certaines bibliothèques de classes et règles de validation personnalisées pour compléter des règles de validation hautement personnalisées.

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