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. |