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);
  }
}