7.- Comprobando los datos

Cómo comprobar los datos introducidos por el usuario en los campos obligatorios

Si hay algo que todos los usuarios tengan en común es su tendencia a olvidarse de rellenar los campos obligatorios de nuestros formularios por muchos colorines negritas y asteriscos que utilicemos para indicárselos.

Vamos a ver un script en php para comprobar si han introducido o no los datos en nuestro formulario, para ello:

1. Utilizaremos un formulario para pedirles unos datos a nuestros usuarios

3. Comprobaremos que efectivamente han rellenado los datos que les hemos pedido.

4. Si los datos son correctos enviaremos el formulario y agradeceremos al usuario su tiempo, en caso contrario le volveremos a mostrar el formulario para que lo termine de rellenar, con los datos que ya hubiera cumplimentado, ya rellenos..

Para hacerlo vamos a definir 3 funciones:

1.- imprime_form Esta función imprime el formulario. Si se ha rellenado anteriormente cualquiera de los campos, la función introduce automáticamente los valores en los campos. Así si el usuario se ha olvidado de alguno, no tiene que volver a escribir todos los datos.

2.- comprueba_form, esta función comprueba si falta alguno de los datos obligatorios y si es así le indicará al usuario los datos que faltan, después llamará a imprime_form para que vuelva a mostrarse el formulario y el usuario pueda rellenar los datos que faltan.

3.- confirma_form que muestra en pantalla toda la información introducida por el usuario. Un botón confirmar permitiría al usuario enviar la información una vez comprobado que los datos son correctos.

Comp_datos.php

<html>
<head>
<title>Contact</title>
</head>
<body>

<?php

function imprime_form ($nombre, $email) {
global $nombre;
global $email;
?>

<form action="formulario.php" method="post">

<table width="50%" border="1" align="center">
<tr>
<td>  Nombre:</td>
<td> <input type="text" name="nombre" value="<?php echo $nombre;?>"></td>
</tr>

<tr>
<td>  email:</td>
<td> <input type="text" name="email" value="<?php echo $email;?>"></td>
</tr>

<tr>
<td colspan="2" align="center">
<input name="submit" type="submit" value="Enviar">
</td>
</tr>
</table>

</form>

<?php  }

function confirma_form($nombre, $email){
global $nombre;
global $email;

?>

<h3> Gracias</h3>
Recibirá su confirmación en el email que nos ha proporcionado.
<?php
}

function comprueba_form($nombre, $email) {
global $nombre;
global $email;

if(!$nombre || !$email) {

echo("<h3>Por favor, compruebe sus datos</h3>");

if (!$nombre) {
echo("No nos ha dicho su nombre");
}

if (!$email) {
echo("No nos ha dicho su email");
}
imprime_form($nombre, $email);

} else {
confirma_form($nombre, $email);
}
}

if (!$submit) {

imprime_form(" ", " ");

} else {
comprueba_form($nombre, $email);
}
?>

</body>
</html>

En este script, primero declaramos las 3 funciones que necesitamos:

1.- print_form que pinta el formulario
2.- comprueba_form que comprueba que los datos están correctos
3.- confirmar_form, que agradece al usuario su colaboración y le muestra en pantalla los datos que ha proporcionado.

Con un if controlamos el cuando se ejecuta cada función: Si todavía no se ha enviado el formulario, se pinta el formulario. Si se ha pulsado el botón enviar, se comprueba que se han introducido todos los datos obligatorios. Si efectivamente se han introducido se le dan las gracias al usuario. Si falta algún campo obligatorio, se vuelve a pintar el formulario con los campos ya rellenos y con indicación de qué campos le faltan.

La función imprime_form($f_name, $l_name, $email, $zip, $os)es la primera la función, lo que hace es que nos pinta el formulario de recogida de datos. Podemos observar, que en los campos imput, hemos definido unos valores, precisamente los parámetros de la función. La finalidad de ello, es que si el usuario no rellena todos los datos necesarios (cuestión que comprobaremos con la función comprueba_form(), los datos que sí se hayan cumplimentado quedarán registrados en las correspondientes variables. Así si comprueba_form() ve que no están todos los datos, vuelve a pintar el formulario, pero, como hemos definido estos valores en los campos imput, si un dato ya hubiera sido cumplimentado, aparecerá en su sitio y el usuario no se verá obligado a volver a rellenarlo.

.
<input type=”text” name=”nombre” value=”<?php print $nombre ?>”>

Así, por ejemplo, el script al utilizar la variable $nombre como “value” si esta variable tiene un valor, rellenará el campo con ese valor.

Si es la primera vez que ejecutamos el script todas las variables tendrán valores vacíos y los campos aparecerán vacíos.

Al pulsar enviar, lo estamos enviando al mismo documento, por lo que entra en juego nuestro if !submita esta función declaramos la función comprueba_form, con los mismos argumentos que la anterior.

Con comrprueba form comprobamos si se han introducido valores en los campos obligatorios

if(!$nombre || !$email)

Si se cumple esta condición en las instrucciones siguientes le decimos al usuario qué campos debe rellenar e invocamos la función imprime_form nuevamente.

Si los campos obligatorios tienen un valor,llamamos a la función comprobar_form que imprime los valores de las variables en pantalla.

Por último comprobamos si se ha enviado el formulario,

Si se ha enviado, llamamos a a la función comprobar formulario, si no se ha enviado, llamamos a la función imprimir_form estableciendo los valores de las variables como nulos.

Comprueba el funcionamiento del formulario

Volver al índice

One response to “7.- Comprobando los datos

  1. hola gran tuto me gustaria saber si no es molestia como poder agregar campos al formulario en el caso de ser necesario .
    o sea que si descido agregar ejemplo telefono pueda hacerlo desde otro php o el mismo ,me podrias ayudar me resulta interesante pero no me doy idea desde ya gracias y disculpas por la molestia .
    atte: Leonardo

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s