Preprocesar datos

Además de las funciones de validación utilizadas anteriormente, podemos preprocesar datos de varias maneras. Por ejemplo, estableciendo las siguientes reglas:

$this->form_validation->set_rules('email', 'Email',
   'trim|required|valid_email|xss_clean');
$this->form_validation->set_rules(
   'contrasenya',
   'Contraseña',
   'trim|required|min_length[5]|max_length[10]|matches[recontrasenya]|xss_clean|sha1');
$this->form_validation->set_rules('recontrasenya', 'Confirme contraseña',
   'trim|required');

Destacar el pre y postprocesamiento del campo ''contrasenya''. Borramos los espacios en blanco de todos los campos, usamos la función xss_clean para eliminar datos maliciosos y por último convertimos la contraseña a sha1 ya que es como está almacenada dicha contraseña en la tabla usuarios.

trim | required | min_length[5] | max_length[10]
   | matches[recontrasenya] | xss_clean | sha1

Podemos usar cualquier función nativa de PHP que acepte un solo parámetro para establecer reglas, como htmlspecialchars, trim, sha1, etc.

Normalmente se suelen preformatear los datos después de las reglas de validación por si acaso se produce un error, ya que debemos mostrar los datos originales en el formulario.

Rellenar los datos enviados en el formulario.

CodeIgniter nos ofrece varias funciones para volver a rellenar los valores de los campos enviados en el formulario. La función que utilizaremos será:

set_value('nombre_del_campo')

Abrimos la vista addform (addform.php) y añadimos en la etiqueta **value** de cada campo el valor devuelto por la función set_value().

<html>
   <head>
      <title>Formulario de registro</title>
   </head>
   <body>
      <?php echo validation_errors()?>
      <?php echo form_open('usuarios/addform')?>

         <h5>Email</h5>
         <input type="text" name="email"
            value="<?php echo set_value('email')?>" size="50" />

         <h5>Contraseña</h5>
         <input type="password" name="contrasenya"
            value="<?php echo set_value('contrasenya')?>" size="50" />

         <h5>Confime contraseña</h5>
         <input type="password" name="recontrasenya"
            value="<?php echo set_value('recontrasenya')?>" size="50" />

          <input type="submit" name="submit" value="Entrar" />
      <?php echo form_close()?>
   </body>
</html>

Si recargamos la página y volvemos a enviar el formulario con datos incorrectos, veremos lo errores y los valores de los campos con los mismos valores enviados.

Accede al manual de CodeIgniter para más información sobre el rellenado de campos de un formulario.

results matching ""

    No results matching ""