Validation et contrôle d’entrées avec GUMP¶
On peut également utiliser des librairies aidant à gérer la validation comme : GUMP
Pour installer:¶
Créons un fichier composer.json dans notre répertoire de travail:
{
"require": {
"wixel/gump": "dev-master"
}
}
Puis utilisons l’outil PHP composer
pour installer les composants demandés:
composer update
Nous pouvons utiliser Gump pour vérifier des entrées :¶
<?php
require "vendor/wixel/gump/gump.class.php";
$is_valid = GUMP::is_valid($_POST, array(
'username' => 'required|alpha_numeric',
'password' => 'required|max_len,100|min_len,6'
));
if($is_valid) {
echo "valid username and password ";
} else {
print_r($is_valid);
}
?>
ou de manière plus détaillée :¶
<?php
require "vendor/wixel/gump/gump.class.php";
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$validator = new GUMP();
$name = $_POST['name'];
$password = $_POST['password'];
$_POST = array(
'name' => $name,
'password' => $password);
// néttoie les données et convertit les chaines en utf-8 si besoin
$_POST = $validator->sanitize($_POST);
// Définissons les règles et les filtres:
$rules = array(
'name' => 'required|alpha_numeric|max_len,100|min_len,6',
'password' => 'required|max_len,100|min_len,6');
$filters = array(
'name' => 'trim|sanitize_string',
'password' => 'trim|base64_encode');
// On applique les filtres
$_POST = $validator->filter($_POST, $filters);
// On valide
$is_valid = $validator->validate($_POST, $rules);
// On vérifie le résultat
if ($is_valid === true )
{
echo $name;
echo $password;
exit;
}
else
{
echo "Erreurs détectées dans les entrées:\n";
// on affiche les erreurs en html
echo $validator->get_readable_errors(true);
}
}