CodeIgniter - Validation de formulaire

La validation est un processus important lors de la création d'une application Web. Cela garantit que les données que nous obtenons sont correctes et valides à stocker ou à traiter. CodeIgniter a rendu cette tâche très facile. Comprenons ce processus avec un exemple simple.

Exemple

Créer un fichier de vue myform.php et enregistrez le code ci-dessous dans application/views/myform.php. Cette page affichera un formulaire où l'utilisateur peut soumettre son nom et nous validerons cette page pour nous assurer qu'elle ne doit pas être vide lors de la soumission.

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

Créer un fichier de vue formsuccess.php et enregistrez-le dans application/views/formsuccess.php. Cette page s'affichera si le formulaire est validé avec succès.

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

Créer un fichier de contrôleur Form.php et enregistrez-le dans application/controller/Form.php. Ce formulaire affichera des erreurs s'il n'est pas correctement validé ou redirigé versformsuccess.php page.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation');
			
         /* Set validation rule for name field in the form */ 
         $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { 
         $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

Ajoutez la ligne suivante dans application/config/routes.php.

$route['validation'] = 'Form';

Exécutons cet exemple en visitant l'URL suivante dans le navigateur. Cette URL peut être différente en fonction de votre site.

http://yoursite.com/index.php/validation

Il produira l'écran suivant -

Nous avons ajouté une validation dans le contrôleur - Nameest un champ obligatoire avant de soumettre le formulaire. Donc, si vous cliquez sur le bouton Soumettre sans rien entrer dans le champ du nom, il vous sera alors demandé de saisir le nom avant de soumettre comme indiqué dans l'écran ci-dessous.

Après avoir entré le nom avec succès, vous serez redirigé vers l'écran comme indiqué ci-dessous.

Dans l'exemple ci-dessus, nous avons utilisé le paramètre de règle requis. Il existe de nombreuses règles disponibles dans CodeIgniter, qui sont décrites ci-dessous.

Référence de règle de validation

Ce qui suit est une liste de toutes les règles natives disponibles à l’utilisation -

Règle Paramètre La description Exemple

required

Non Renvoie FALSE si l'élément de formulaire est vide.

matches

Oui Renvoie FALSE si l'élément de formulaire ne correspond pas à celui du paramètre. correspond à [form_item]

regex_match

Oui Renvoie FALSE si l'élément de formulaire ne correspond pas à l'expression régulière. regex_match [/ regex /]

differs

Oui Renvoie FALSE si l'élément de formulaire ne diffère pas de celui du paramètre. diffère [form_item]

is_unique

Oui Renvoie FALSE si l'élément de formulaire n'est pas unique au nom de la table et du champ dans le paramètre. Remarque - Cette règle nécessite l'activation de Query Builder pour fonctionner. is_unique [table.field]

min_length

Oui Renvoie FALSE si l'élément de formulaire est plus court que la valeur du paramètre. min_length [3]

max_length

Oui Renvoie FALSE si l'élément de formulaire est plus long que la valeur du paramètre. max_length [12]

exact_length

Oui Renvoie FALSE si l'élément de formulaire n'est pas exactement la valeur du paramètre. exact_length [8]

greater_than

Oui Renvoie FALSE si l'élément de formulaire est inférieur ou égal à la valeur du paramètre ou non numérique. plus grand que [8]

greater_than_equal_to

Oui Renvoie FALSE si l'élément de formulaire est inférieur à la valeur du paramètre ou n'est pas numérique. Greater_than_equal_to [8]

less_than

Oui Renvoie FALSE si l'élément de formulaire est supérieur ou égal à la valeur du paramètre ou non numérique. less_than [8]

less_than_equal_to

Oui Renvoie FALSE si l'élément de formulaire est supérieur à la valeur du paramètre, ou non numérique. less_than_equal_to [8]

in_list

Oui Renvoie FALSE si l'élément de formulaire n'est pas dans une liste prédéterminée. in_list [rouge, bleu, vert]

alpha

Non Renvoie FALSE si l'élément de formulaire contient autre chose que des caractères alphabétiques.

alpha_numeric

Non Renvoie FALSE si l'élément de formulaire contient autre chose que des caractères alphanumériques.

alpha_numeric_spaces

Non Renvoie FALSE si l'élément de formulaire contient autre chose que des caractères alphanumériques ou des espaces. Doit être utilisé après la coupe pour éviter les espaces au début ou à la fin

alpha_dash

Non Renvoie FALSE si l'élément de formulaire contient autre chose que des caractères alphanumériques, des traits de soulignement ou des tirets.

numeric

Non Renvoie FALSE si l'élément de formulaire contient autre chose que des caractères numériques.

integer

Non Renvoie FALSE si l'élément de formulaire contient autre chose qu'un entier.

decimal

Non Renvoie FALSE si l'élément de formulaire contient autre chose qu'un nombre décimal.

is_natural

Non Renvoie FALSE si l'élément de formulaire contient autre chose qu'un nombre naturel - 0, 1, 2, 3, etc.

is_natural_no_zero

Non Renvoie FALSE si l'élément de formulaire contient autre chose qu'un nombre naturel, mais pas zéro - 1, 2, 3, etc.

valid_url

Non Renvoie FALSE si l'élément de formulaire ne contient pas d'URL valide.

valid_email

Non Renvoie FALSE si l'élément de formulaire ne contient pas d'adresse e-mail valide.

valid_emails

Non Renvoie FALSE si une valeur fournie dans une liste séparée par des virgules n'est pas un e-mail valide.

valid_ip

Non Renvoie FALSE si l'adresse IP fournie n'est pas valide. Accepte un paramètre facultatif «ipv4» ou «ipv6» pour spécifier un format IP.

valid_base64

Non Renvoie FALSE si la chaîne fournie contient autre chose que des caractères Base64 valides.