CodeIgniter - Convalida del modulo
La convalida è un processo importante durante la creazione dell'applicazione web. Garantisce che i dati che riceviamo siano corretti e validi per l'archiviazione o l'elaborazione. CodeIgniter ha reso questo compito molto semplice. Cerchiamo di capire questo processo con un semplice esempio.
Esempio
Crea un file di visualizzazione myform.php e salva il codice seguente in application/views/myform.php. Questa pagina mostrerà un modulo in cui l'utente può inviare il suo nome e convalideremo questa pagina per assicurarci che non debba essere vuota durante l'invio.
<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>
Crea un file di visualizzazione formsuccess.php e salvalo in application/views/formsuccess.php. Questa pagina verrà visualizzata se il modulo viene convalidato correttamente.
<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>
Crea un file controller Form.php e salvalo in application/controller/Form.php. Questo modulo mostrerà errori se non viene convalidato correttamente o reindirizzato aformsuccess.php pagina.
<?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');
}
}
}
?>
Aggiungi la seguente riga application/config/routes.php.
$route['validation'] = 'Form';
Eseguiamo questo esempio visitando il seguente URL nel browser. Questo URL potrebbe essere diverso in base al tuo sito.
http://yoursite.com/index.php/validation
Produrrà la seguente schermata:
Abbiamo aggiunto una convalida nel controller: Nameè un campo obbligatorio prima di inviare il modulo. Quindi, se fai clic sul pulsante di invio senza inserire nulla nel campo del nome, ti verrà chiesto di inserire il nome prima di inviare come mostrato nella schermata sottostante.
Dopo aver inserito correttamente il nome, verrai reindirizzato alla schermata come mostrato di seguito.
Nell'esempio precedente, abbiamo utilizzato l'impostazione della regola richiesta. Ci sono molte regole disponibili in CodeIgniter, che sono descritte di seguito.
Riferimento alla regola di convalida
Di seguito è riportato un elenco di tutte le regole native disponibili per l'uso:
Regola | Parametro | Descrizione | Esempio |
---|---|---|---|
required |
No | Restituisce FALSE se l'elemento del modulo è vuoto. | |
matches |
sì | Restituisce FALSE se l'elemento del modulo non corrisponde a quello nel parametro. | corrisponde a [form_item] |
regex_match |
sì | Restituisce FALSE se l'elemento del modulo non corrisponde all'espressione regolare. | regex_match [/ regex /] |
differs |
sì | Restituisce FALSE se l'elemento del modulo non è diverso da quello nel parametro. | differisce [form_item] |
is_unique |
sì | Restituisce FALSE se l'elemento del modulo non è univoco per la tabella e il nome del campo nel parametro. Nota: questa regola richiede che il Generatore di query sia abilitato per funzionare. | is_unique [table.field] |
min_length |
sì | Restituisce FALSE se l'elemento del modulo è più corto del valore del parametro. | min_length [3] |
max_length |
sì | Restituisce FALSE se l'elemento del modulo è più lungo del valore del parametro. | max_length [12] |
exact_length |
sì | Restituisce FALSE se l'elemento del modulo non è esattamente il valore del parametro. | lunghezza_esatta [8] |
greater_than |
sì | Restituisce FALSE se l'elemento del modulo è minore o uguale al valore del parametro o non è numerico. | maggiore_di [8] |
greater_than_equal_to |
sì | Restituisce FALSE se l'elemento del modulo è inferiore al valore del parametro o non è numerico. | maggiore_than_equal_to [8] |
less_than |
sì | Restituisce FALSE se l'elemento del modulo è maggiore o uguale al valore del parametro o non è numerico. | less_than [8] |
less_than_equal_to |
sì | Restituisce FALSE se l'elemento del modulo è maggiore del valore del parametro o non è numerico. | less_than_equal_to [8] |
in_list |
sì | Restituisce FALSE se l'elemento del modulo non si trova in un elenco predeterminato. | in_list [rosso, blu, verde] |
alpha |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso dai caratteri alfabetici. | |
alpha_numeric |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso dai caratteri alfanumerici. | |
alpha_numeric_spaces |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso da caratteri alfanumerici o spazi. Dovrebbe essere usato dopo il taglio per evitare spazi all'inizio o alla fine | |
alpha_dash |
No | Restituisce FALSO se l'elemento del modulo contiene qualcosa di diverso da caratteri alfanumerici, trattini bassi o trattini. | |
numeric |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso dai caratteri numerici. | |
integer |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso da un numero intero. | |
decimal |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso da un numero decimale. | |
is_natural |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso da un numero naturale - 0, 1, 2, 3, ecc. | |
is_natural_no_zero |
No | Restituisce FALSE se l'elemento del modulo contiene qualcosa di diverso da un numero naturale, ma non zero - 1, 2, 3, ecc. | |
valid_url |
No | Restituisce FALSE se l'elemento del modulo non contiene un URL valido. | |
valid_email |
No | Restituisce FALSE se l'elemento del modulo non contiene un indirizzo e-mail valido. | |
valid_emails |
No | Restituisce FALSE se qualsiasi valore fornito in un elenco separato da virgole non è un messaggio di posta elettronica valido. | |
valid_ip |
No | Restituisce FALSE se l'IP fornito non è valido. Accetta un parametro facoltativo di "ipv4" o "ipv6" per specificare un formato IP. | |
valid_base64 |
No | Restituisce FALSE se la stringa fornita contiene qualcosa di diverso dai caratteri Base64 validi. |