slam4:php:codeigniter:validation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:php:codeigniter:validation [2012/12/09 00:14] – [Formulaire] jcheronslam4:php:codeigniter:validation [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Validation des formulaires ====== ====== Validation des formulaires ======
  
-<html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:session" class="wikilink1" title="Bibliothèque session"><< Sessions</a></div></html><html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:database" class="wikilink1" title="Bibliothèque database">Bibliothèque database >></a></div></html>+<html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:session" class="wikilink1" title="Bibliothèque session"><< Sessions</a></div></html><html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:orm" class="wikilink1" title="ORM">ORM IgnitedRecord >></a></div></html> 
 + 
 +  - [[slam4:php:codeigniter|Introduction à CodeIgniter]] 
 +  - [[slam4:php:codeigniter:helpers|Helpers]] 
 +  - [[slam4:php:codeigniter:libraries|Bibliothèques]] 
 +  - [[slam4:php:codeigniter:session|Sessions CodeIgniter]] 
 +  - Validation des formulaires 
 +  - [[slam4:php:codeigniter:orm|ORM IgnitedRecord]] 
 +  - [[slam4:php:codeigniter:doctrine|Doctrine]] 
 +  - [[slam4:php:codeigniter:javascript|Javascript et codeIgniter]]
  
   * [[http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html| Aide codeIgniter sur la librairie form_validation]]   * [[http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html| Aide codeIgniter sur la librairie form_validation]]
  
-La bibliothèque **form_validation** doit être chargée :+La bibliothèque **form_validation** prend en charge le contrôle et la validation des formulaires, et l'affichage de messages d'erreur.\\ 
 +**form_validation** doit être chargée :
   * soit automatiquement avec autoload.php :    * soit automatiquement avec autoload.php : 
  
Ligne 14: Ligne 24:
   * Soit dans le code d'un contrôleur par exemple :   * Soit dans le code d'un contrôleur par exemple :
 <code php> <code php>
-$this->load->library('session');+$this->load->library('form_validation');
 </code> </code>
  
Ligne 127: Ligne 137:
 ?> ?>
 </code> </code>
 +==== Ajout de règles en cascade ====
 +Remplacer les règles précédentes par :
 +<code php>
 +$this->form_validation->set_rules('username', 'Nom d''utilisateur', 'trim|required|min_length[5]|max_length[12]|xss_clean');
 +$this->form_validation->set_rules('password', 'Mot de passe', 'trim|required|matches[passconf]|md5');
 +$this->form_validation->set_rules('passconf', 'Confirmation', 'trim|required');
 +$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
 +</code>
 +
 +Le contrôle inclut cette fois une transformation de la valeur des champs avant validation :
 +  * trim supprime les espaces avant et après
 +  * md5 crypte en md5
 +  * xss_clean supprime tous les éléments susceptibles de permettre une attaque xss (Cross Site Scripting) 
 +
 +==== Ajout d'une fonction de validation utilisateur ====
 +
 +<code php |h form.php>
 +<?php
 +
 +class Form extends CI_Controller {
 +
 + public function index()
 + {
 + $this->load->helper(array('form', 'url'));
 +
 + $this->load->library('form_validation');
 +
 + $this->form_validation->set_rules('username', 'Nom d''utilisateur', 'callback_username_check');
 + $this->form_validation->set_rules('password', 'Mot de passe', 'required');
 + $this->form_validation->set_rules('passconf', 'Confirmation', 'required');
 + $this->form_validation->set_rules('email', 'Email', 'required|is_unique[users.email]');
 +
 + if ($this->form_validation->run() == FALSE)
 + {
 + $this->load->view('myform');
 + }
 + else
 + {
 + $this->load->view('formsuccess');
 + }
 + }
 +
 + public function username_check($str)
 + {
 + if ($str == 'test')
 + {
 + $this->form_validation->set_message('username_check', 'Le champ %s ne peut pas être égal à "test"');
 + return FALSE;
 + }
 + else
 + {
 + return TRUE;
 + }
 + }
 +
 +}
 +?>
 +</code>
 +
 +==== Affichage des valeur après échec de validation ====
 +On utilise **set_value('nomChamp')** pour afficher à nouveau la valeur de chacun des champs (excepté sur les mots de passe).
 +
 +<code html |h myForm.php>
 +<html>
 +<head>
 +<title>My Form</title>
 +</head>
 +<body>
 +
 +<?php echo validation_errors(); ?>
 +
 +<?php echo form_open('form'); ?>
 +
 +<h5>Username</h5>
 +<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
 +
 +<h5>Password</h5>
 +<input type="password" name="password" value="" size="50" />
 +
 +<h5>Password Confirm</h5>
 +<input type="password" name="passconf" value="" size="50" />
 +
 +<h5>Email Address</h5>
 +<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
 +
 +<div><input type="submit" value="Submit" /></div>
 +
 +</form>
 +
 +</body>
 +</html>
 +</code>
 +
 +<html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:session" class="wikilink1" title="Bibliothèque session"><< Sessions</a></div></html><html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:orm" class="wikilink1" title="ORM">ORM IgnitedRecord >></a></div></html>
  • slam4/php/codeigniter/validation.1355008488.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)