Comment vérifier le format d'un mot de passe en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2019-12-08 18:58:42
Thèmes : script - php - mot-de-passe
Question

Bonjour, je dois vérifier le format d'un mot de passe lorsqu'un utilisateur s'inscrit sur un site et cré son mot de passe. Le mot de passe doit contenir au moins une majuscule, une minuscule, un chiffre, et 8 caractères. Comment faire pour vérifier le format du mot de passe, selon ces critères, en PHP ?

Réponse

Vous pouvez utiliser les fonctions PHP preg_match et quelques pattern, puis la fonction strlen, pour vérifier, selon vos critères, le format des mots de passes de vos utilisateurs.

  • Le pattern @[A-Z]@ permet de vérifier que le mot de passe contient une ou plusieurs majuscule.
  • Le pattern @[a-z]@ permet de vérifier que le mot de passe contient une ou plusieurs minuscule.
  • Le pattern @[0-9]@ permet de vérifier qu'il est composé d'au moins un chiffre.
  • < 8 qu'il fait au minimum 8 caractères.

Exemple pour vérifier qu'un mot de passe contient une ou plusieurs minuscule, majuscule, des chiffres et est supérieur ou égale à 8 caractères :

<?php
function check_mdp_format($mdp)
{
$majuscule = preg_match('@[A-Z]@', $mdp);
$minuscule = preg_match('@[a-z]@', $mdp);
$chiffre = preg_match('@[0-9]@', $mdp);

if(!$majuscule || !$minuscule || !$chiffre || strlen($mdp) < 8)
{
return false;
}
else 
return true;
}

if (check_mdp_format("1Formatik") != true)
{
echo "Format non correct";
}
else 
echo "Format correct";
?>