begin process at 2012 05 27 17:57:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > PHP5 - CLASSE DE VÉRIFICATION DE FORMULAIRE SIMPLE

PHP5 - CLASSE DE VÉRIFICATION DE FORMULAIRE SIMPLE


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :Formulaire, Vérification, Objet Niveau :Débutant Date de création :25/09/2007 Date de mise à jour :27/09/2007 16:12:03 Vu :6 231

Auteur : NainPuissant

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

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

  • <?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>
<?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>



 Historique

25 septembre 2007 15:18:25 :
Ptite correction
25 septembre 2007 15:19:18 :
Aucunes... XD
26 septembre 2007 10:12:40 :
Modification pour récupéré l'extension d'un fichier
27 septembre 2007 16:12:03 :
J'ai lu mes commentaires =P

 Sources du même auteur

CLASS DE PAGINATION
FONCTION DE PAGINATION SIMPLE

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

 Sources en rapport avec celle ci

Source avec Zip VÉRIFICATION DE FORMULAIRE EN PHP par psonic13
FORM, ORM POUR FORMULAIRE par choy
Source avec Zip Source avec une capture PHPJSVFORM : DES CLASSES PHP, DES JAVASCRIPTS POUR CRÉER FAC... par synanceia
Source avec Zip [PHP5] - CLASSE DE VÉRIFICATION DE FORMULAIRE par codefalse
SÉCURISATION FORMULAIRE (SELECT ET OPTION) par fafa1510

Commentaires et avis

Commentaire de webdeb le 26/09/2007 09:08:08

De bonnes idées, notamment l'implémentation de l'extension Filter de PHP5. Par contre j'ai quelques remarques à te faire pour améliorer tout ça :

1/ Remplacer tes != '' par !empty($maVar)
2/ Une extension doit plutôt se récupérer à partir de la fonction pathinfo() et de sa constante PATHINFO_EXTENSION.

++

Commentaire de NainPuissant le 26/09/2007 10:09:53

Hey merci pour pathinfo je connaisais pas =o.
Et pour les != '' je fais juste un double test : avec != et avec !empty... juste au cas où =P.
Bon après pour les fonctions de check, j'ai juste fais des trucs simples chacun peut faire sa ptite fonction.

Commentaire de codefalse le 27/09/2007 10:59:19 administrateur CS

en fait ta double vérification ne fait que te perdre du temps de calcul et des lignes de code en plus :)

Commentaire de malalam le 27/09/2007 13:40:57 administrateur CS

Hello,

c'est plus grave que ça ce laxisme dans les comparaisons.
empty() va vérifier qu'une valeur est vide, ou nulle, ou false...
== '' aussi...
ce qui implique que 0 rentre dans ces deux cas.
Et quand après on a aussi ça :
#  public static function notZero($value)
# {
# if ($value == 0) {
# return false;
# }
#
# return true;
# }

Ca devient très embêtant, car ce code ne vérifie absolument pas si la valeur est égale à 0. Si elle est false, ou '', c'est pareil.

Quand on fait un code de traitement de données, on DOIT coder de manière stricte! Tes comparaisons doivent être strictes, et tu ne peux pas te permettre de ne pas connaître les différences entre empty(), isset(), is_null(), is_int(), ==, ===, !=, !== etc.
Sinon, ton code va forcément être buggé.
Et en l'occurence, il l'est.

Sinon, bien aussi pour les filtres en effet :-) Mais tu devrais approfondir, tu t'en sers peu là...et ils peivent justement t'éviter bien des déboires.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Question sur le formulaire (vérification email) [ par developvbdebut ] Bonsoir tout le mondeJe souhaiterai savoir si il y a un code qui permet de v&#233;rifier si c'est bien une adresse email qui &#224; &#233;tait rentr&# vérification de formulaire [ par nino69 ] Bonjour, j'ai cr&eacute;e un formulaire et une v&eacute;rification en PHP. Si l'un des champs est mal rempli, le code PHP envoye un message &agrave; l Vérification Entrée par Java Script dans formulaire [ par Tanaka56 ] Bonjour à tous.J'ai un formulaire HTML qui après validation va su Référence dans formulaire [ par mheditions ] bonjour.tjs dans le but d'améliorer un formulaire de commande, je cherche à partir d'une page html qui contient plusieurs objet à commander ; que chac Vérification d'un formulaire [ par hou1919 ] Comment pour ne pas vider les champs apres la verification d'un formulaireet lorsque je trouve des champs non remplis par exemple et à savoir que mes Afficher un message d'erreur avant retour formulaire [ par patric31 ] Bonjour à toutes et à tous,Je suis tout nouveau et chez vous et chez M. et Mme PHP et leur petit SQL.J'ai créer un formulaire de saisie tout simple :& Formulaire + vérification + enregistrement sur MySQL + envoie informations vers API [ par bioubelard ] Bonjour, je me permets de poster ce nouveau sujet car je suis actuellement étudiant en 1ère année en DUT info et je dois développer un petit site. Je vérification de champ d'un formulaire [ par cobrachris ] j'ai lu plusieur post mais j'ai pas vraiment trouver.Voila je vous explique rapidement.J'aimerais cr&#233;er unformulaire pour enregistrer des lieux e formulaire objet [ par jasou62114 ] bonjour à tous, j'ai un soucis, je n'arrive pas à faire une liste déroulante en php objet. J'ai repris un projet qui as déjà été codé à 99% et je l'a Formulaire et envoi de mail [ par Becca ] Bonjour, j'ai un petit problème avec le formulaire. En fait quand les personnes remplissent le formulaire je voudrais recevoir par mail leur réponse.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales