Professional Documents
Culture Documents
Hasta ahora hemos visto unas cuantas cosas a tener en cuenta a la hora de procesar un
formulario en PHP, pero aún hay otras dos que deberemos tener en cuenta:
Aunque hayamos recibido todos los campos requeridos tendremos que comprobar si
los tipos de datos de dichos valores se corresponden con los esperados (si esperamos
un valor numérico que no hayan letras u otros símbolos, por ejemplo).
Para ello podemos usar las
funciones empty(), is_bool(), is_string(), is_int(), is_float(), is_numeric() e is_null().
En caso de valores de tipo string hemos de tener en cuenta si admitiremos como válida
una cadena vacía, si puede contener números y caracteres especiales o no, y si estos
necesitan ser escapados.
Para ello podemos usar expresiones regulares y funciones funciones
como addslashes(), stripslashes(), htmlspecialchars(),htmlentities(), htmlspecialc
hars_decode() y html_entity_decode().
Para comprobar si el valor es un número o una cadena numérica (como en sucede
en los formularios) debes usar la función de PHP is_numeric() en vez
de is_int() o is_float().
Por último, recuerda que en las siguientes comparaciones se devuelve true (con lo cual se
cumplirían las condiciones):
if( "" == false )
if( 0 == false )
if( null == false )
Esto es así porque el operador de comparación == se usa para comprobar que los valores sean
iguales (y en los casos anteriores PHP los considera así): por ello, para evitar posibles errores,
en ocasiones será más conveniente usar === que devolverá true sólo sin ambos valores son
iguales y además del mismo tipo de dato (que ambos sean números, cadenas de texto, etc.).
A continuación te mostramos un completo ejemplo (en este caso con un archivo .html y otro
archivo .php con el código fuente necesario para validar el formulario).
Código PHP:
<?php
$aErrores = array();
$aMensajes = array();
$patron_texto = "/^[a-zA-ZáéíóúÁÉÍÓÚäëïöüÄËÏÖÜàèìòùÀÈÌÒÙ\s]+$/";
// Comprobar si se ha enviado el formulario:
if( !empty($_POST) )
echo "====================<p/>";
print_r( $_POST );
echo "<hr/>";
// Nombre:
if( empty($_POST['txtNombre']) )
else
// Comprobar mediante una expresión regular, que sólo contiene letras y espacios:
else
// Apellidos:
if( empty($_POST['txtApellidos']) )
else
{
// Comprobar mediante una expresión regular, que sólo contienen letras y espacios:
else
// Edad:
if( is_numeric($_POST['txtEdad']) )
else
// Inglés:
if( isset($_POST['radIngles']) )
// Coche:
if( isset($_POST['chkCoche']) )
/*
está definido 'chkCoche' es que se ha marcado (al igual que sucede con
*/
$aMensajes[] = "Coche: [SI]";
else
echo $aErrores[$contador]."<br/>";
else
echo $aMensajes[$contador]."<br/>";
else
}
echo "<p><a href='03_form3.html'>Haz clic aquí para volver al formulario</a></p>";
?>
Código HTML:
Expand Code