Php5 - classe de vérification de formulaire simple

Contenu du snippet

Voilà une ptite classe qui vous permet de tester les valeurs d'un formulaire.

Elle est simple et le restera =o cela me suffit mais j'dis pas non pour des ptits plus =)

Source / Exemple :


<?php
class Errors
{
	private $values = array();
	private $form = '';
	private $list_errors = array();
	private $exist = false;
	private $nb_errors = 0;
	
	/**

  • Constructeur de la class, spécifie les valeurs du formulaire
*
  • @param array $values
  • @param string $form
  • /
public function __construct($values, $form) { $this->values = $values; $this->form = $form; } /**
  • Ajout l'erreur a $this->list_error
*
  • @param string $error
  • @param mixed $values
  • @param string $type
  • /
public function add($error, $values, $type) { if (is_array($values)) { $value_bis = array(); foreach ($values as $value) { $value_bis[] = $this->values[$value]; } $values = $value_bis; } else { if (isset($this->values[$values])) { $values = $this->values[$values]; } } if (!Checking::$type($values)) { $this->list_errors[] = $error; $this->exist = true; $this->nb_errors++; } } /**
  • Génère l'affichage des erreurs, assigne les valeurs au formulaire et vérifie qu'il est bien valide
*
  • @return bool
  • /
public function valid() { if ($this->exist) { $_SESSION[$this->form]['form_errors'] = $this->list_errors; $_SESSION[$this->form]['form_values'] = $this->values; return false; } return true; } public function __get($name) { if (property_exists($this, $name)) { return $this->$name; } } } class Checking { /**
  • Vérifie si une valeur est vide / existe
*
  • @param mixed $values
  • @return bool
  • /
public static function notEmpty($values) { // Si $values n'est pas un array if (!is_array($values)) { $value = trim($values); if (!empty($value) && isset($value)) { return true; } return false; } foreach ($values as $value) { $value = trim($value); if (empty($value) || !isset($values)) { return false; } } return true; } /**
  • Vérifie si une valeur est égale à une autre
  • @param array $values
  • @return bool
  • /
public static function isEqual($values) { if ($values[0] !== $values[1]) { return false; } return true; } /**
  • Vérifie si une valeur est égale à zéro
  • @param string $value
  • @return bool
  • /
public static function notZero($value) { if ($value === 0) { return false; } return true; } /**
  • Vérifie que le mail est valide
  • @param string $mail
  • @return bool
  • /
public static function isValidMail($mail) { if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) { return false; } return true; } /**
  • Vérifie que ce soit bien un entier
  • @param int $int
  • @return bool
  • /
public static function isInt($int) { if (!filter_var($int, FILTER_VALIDATE_INT)) { return false; } return true; } /**
  • Vérifie que l'image envoyé est bien un "jpg"
  • @params $index string
  • @return bool
  • /
public static function isJpg($index) { if (empty($_FILES[$index]['name'])) { return true; } $path_parts = pathinfo($_FILES[$index]['name']); if ($path_parts['extension'] != 'jpg') { return false; } return true; } } ?> Exemple : <?php $_SESSION['test']['form_values'] = array(); $_SESSION['test']['form_errors'] = array(); if (isset($_POST['input_submit'])) { $errors = new Errors($_POST, 'test'); $errors->add('Le champ ne doit pas être vide.', 'input1', 'notEmpty'); $errors->add('Le champ ne doit pas être égale à zéro.', 'input2', 'notZero'); $errors->add('Les valeurs doivent être identique.', array('input3', 'input4'), 'isEqual'); // Si le forumaire est valide if ($errors->valid()) { echo 'Le formulaire est valide<br />'; } } if (!empty($_SESSION['test']['form_errors'])) { $errors_values = $_SESSION['test']['form_errors']; foreach ($errors_values as $value) { echo $value . '<br />'; } } ?> <form action=""> <p> Input 1 : <input type="text" name="input1" value="<?php echo $_SESSION['test']['form_values']['input1']; ?>" /><br /> Input 2 : <input type="text" name="input2" value="<?php echo $_SESSION['test']['form_values']['input2']; ?>" /><br /> Input 3 : <input type="text" name="input3" value="<?php echo $_SESSION['test']['form_values']['input3']; ?>" /><br /> Input 4 : <input type="text" name="input4" value="<?php echo $_SESSION['test']['form_values']['input4']; ?>" /><br /> <input type="submit" name="input_submit" value="Envoyer" /> </p> </form>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.