Foros del Web » Programando para Internet » PHP »

Controlar que el formulario esté relleno 100%

Estas en el tema de Controlar que el formulario esté relleno 100% en el foro de PHP en Foros del Web. Hola, tengo un formulario en php y quiero que si el usuario pulsa en aceptar y algun formulario está en blanco que vuelva a salir ...
  #1 (permalink)  
Antiguo 09/09/2008, 00:46
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 12 años, 2 meses
Puntos: 1
Exclamación Controlar que el formulario esté relleno 100%

Hola, tengo un formulario en php y quiero que si el usuario pulsa en aceptar y algun formulario está en blanco que vuelva a salir el formulario para que lo rellene, y no como ahora que simplemente lo ignora.

Mi formulario es el siguiente:


<?php

echo "<html><head></head><body bgcolor=#FFE5BC>";

echo "<center><font color=\"#3F0707\" size=\"50\"><b>Registro de nuevo usuario</b></font><p>";

echo "<br><center><h4>Por favor, rellene todos los campos (obligatorio).</h4></center>";
echo "<br><center><h4>Para acceder como usuario le pediremos su dirección de correo y la contraseña</h4></center>";

echo "<FORM ACTION=./alta.php METHOD=POST>";

echo "<br><pre> Nombre <input type=textbox maxlength=200 size=25 name=nombre>";

echo "<br> Apellidos <input type=textbox maxlength=200 size=25 name=apellidos>";

echo "<br> Email <input type=textbox maxlength=200 size=25 name=correo>";

echo "<br> Contraseña <input type=textbox maxlength=200 size=25 name=contrasenia>";

echo "<br> Pais <input type=textbox maxlength=200 size=25 name=pais>";

echo "<br> Año nacimiento (aaaa) <input type=textbox maxlength=200 size=25 name=fechanacimiento>";

echo "<br> Sexo (Hombre/Mujer) <input type=textbox maxlength=200 size=25 name=sexo>";

echo "<br> Telefono <input type=textbox maxlength=200 size=25 name=telefono>";

echo "<br> Nombre de empresa <input type=textbox maxlength=200 size=25 name=nombreempresa>";

echo "<br> Correo de empresa <input type=textbox maxlength=200 size=25 name=correoempresa";echo "<br>";

echo "<br> Direccion de empresa <input type=textbox maxlength=200 size=25 name=direccionempresa>";echo "<br>";

echo "<br> Telefono de empresa <input type=textbox maxlength=200 size=25 name=telefonoempresa";echo "<br>";

echo "<br> Sector de la empresa <input type=textbox maxlength=200 size=25 name=sectorempresa";echo "<br>";echo "<br>";

echo "<br><br><br><center><h5> </h5></center>";

echo "<br><br><center><input type=submit value=Continuar>";

echo "<br><br><br><center><h5> </h5></center>";

echo "<center><p>Al pulsar en continuar aceptas las <a href="condiciones.html">condiciones</a> </p></center>";

echo "</FORM>";

echo "</body></html>";

?>

Muchas gracias
  #2 (permalink)  
Antiguo 09/09/2008, 03:57
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 14 años, 6 meses
Puntos: 19
Respuesta: Controlar que el formulario esté relleno 100%

La validación de los campos la puedes con javascript y/o con PHP. Teniendo en cuenta que el usuario puede tener deshabilitado el javascript en su navegador, lo mejor es validar con PHP y, además, con javascript.

Busca en este foro y en el de javascript por 'validacion campos' o similares. En las respectivas FAQs seguro que se habla del tema.

Un saludo
  #3 (permalink)  
Antiguo 10/09/2008, 05:09
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Controlar que el formulario esté relleno 100%

ok muchas gracias
  #4 (permalink)  
Antiguo 10/09/2008, 05:26
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Controlar que el formulario esté relleno 100%

Usando sólo PHP tienes la opción de que en el script de validación, para comprobar que todo esté lleno hacer algo así:
Código PHP:
$campos_vacios = Array(); //aqui guardamos los que estén vacíos
$c 0;
foreach(
$_POST as $key=>$value)
{
     if(empty(
$value))
     {
          
$campos_vacios[$c++]=$key;
     }

Ahora no estoy seguro de si el postincremento($c++) está permitido en PHP, pero es que estoy acostumbrado al C++ y ahí sí se usa.
Después de esto tendrás todos tus campos vacíos en $campos_vacios, puedes comprobar si hay alguno con un simple count($campos_vacios). Si el valor es mayor que 0 es que hay alguno, entonces puedes hacer un include con tu formulario y manejar el contenido de ese array para indicar cuales están vacíos.
O sea, que en resumen el esquema de validación sería algo como:
Código PHP:
/* validacion */
if($todo_ok)
/* procesamos, todo_ok puede ser lo que sea que sirve para comprobar que todo haya ido bien */
else
{
   
//proesamos cuando falla algo, y hacemos un include con el formulario, o en todo caso una redirección o lo que se quiera hacer en ese caso

__________________
Un Lannister siempre cumple sus promesas
  #5 (permalink)  
Antiguo 11/09/2008, 04:25
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 12 años, 2 meses
Puntos: 1
Exclamación Respuesta: Controlar que el formulario esté relleno 100%

Gracias lo intentaré a ver si me sale.
  #6 (permalink)  
Antiguo 11/09/2008, 06:05
 
Fecha de Ingreso: mayo-2008
Mensajes: 42
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Controlar que el formulario esté relleno 100%

Ufff si no lo digo reviento... porque pones toda la web metida dentro de <? ?> ????

ahí no te hacía falta haber usado ni una sola línea de PHP...
  #7 (permalink)  
Antiguo 12/09/2008, 02:34
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Controlar que el formulario esté relleno 100%

Cita:
Iniciado por VitorGarcia Ver Mensaje
Ufff si no lo digo reviento... porque pones toda la web metida dentro de <? ?> ????

ahí no te hacía falta haber usado ni una sola línea de PHP...
La verdad es que hice un copy paste de otra página web mía que tenía, asi me ahorro tiempo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:30.