Foros del Web » Programando para Internet » PHP »

fromulario validacion y despliegue de errores

Estas en el tema de fromulario validacion y despliegue de errores en el foro de PHP en Foros del Web. He estado viendo en la red algunos formularios y he visto algunos en que tu vas llenando cada campo y al pulsar el boton enviar, ...
  #1 (permalink)  
Antiguo 21/09/2007, 20:58
 
Fecha de Ingreso: enero-2002
Mensajes: 237
Antigüedad: 22 años, 2 meses
Puntos: 0
fromulario validacion y despliegue de errores

He estado viendo en la red algunos formularios y he visto algunos en que tu vas llenando cada campo y al pulsar el boton enviar, si tuviste erroes en el llenado del form, te indica qué campos están mal llenados para que tu hagas las correciones. Estos campos tienen otro color y el resto de los campos que llenaste y estan correctos estan intactos, asi que simplemente vuelves a llenar sólo los campos con errores.

Quisiera implementar algo así y mi consulta es saber si esto se puede hacer con php o se necesita javascript para lograr ese efecto? Si es así, yo puedo mezclar php y javascript en un solo archivo? tener por ejemplo html, php y javascript metido en un archivo llamado formulario.php o se hace por separado?

Hay algun tutorial que me pueda dar una reseña como para poder empezar?

Gracias de antemano.-
  #2 (permalink)  
Antiguo 21/09/2007, 21:02
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: fromulario validacion y despliegue de errores

Hola VALAQUIA...

Claro que puedes con php!!! Inclusive ni necesitas javascript para hacer eso, sólo php!!!

Es algo sencillo de hacer...., no cuesta mucho trabajo..

Mira mi web e intenta registrarte, introducele valores no debidos y verás lo que pasa... si es eso lo que buscas, dime y te paso el código.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 21/09/2007, 21:25
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: fromulario validacion y despliegue de errores

Como dice Carlx. no es muy dificil, solo tienes que usar puros if y elsesif para comprovar todos los campos...

saludos!!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #4 (permalink)  
Antiguo 21/09/2007, 21:48
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: fromulario validacion y despliegue de errores

Es.................... carXL jejeje
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 22/09/2007, 20:19
 
Fecha de Ingreso: enero-2002
Mensajes: 237
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: fromulario validacion y despliegue de errores

Sí, es mas menos la idea que tengo en mente. De verdad me sirviría mucho chekear el código para poder hacer mi formulario.
Gracias.-
  #6 (permalink)  
Antiguo 22/09/2007, 20:29
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: fromulario validacion y despliegue de errores

Buenas, mira, aca te dejo un ejemplo sencilito para la validacion, primero, verificar que un campo tenga, que otro no sea mayor a X numero y dps un mail, de ahi le agregas y modificas a tu gusto.. ;)

Código PHP:
<?php
  
if(isset($_POST['enviar'])) {  // si se han enviado los datos
    // creamos una función que valida la dirección de correo
    
function email_valido($correo) {
        if (
eregi("^[_\.0-9a-z-]+@[0-9a-z\._\-]+\.[a-z]{2,4}$"$correo)) return true;
        else return 
false;
    }
    if(
strlen($_POST['campo_A']) > 10) { // aquí preguntamos si el Campo A contiene más de 10 caracteres, para ello usamos la funcion strlen()
      
echo "El campo A debe contener como mínimo 10 caracteres";
    }elseif(!
email_valido($_POST['Campo_B'])) { // aquí usamos la funcion para validar el email
      
echo "El Email ".$_POST['Campo_B']." no es una dirección válida.";
    }elseif(
$_POST['Campo_C'] == '') { // aquí estamos preguntando si el Campo C está vacío
      
echo "El Campo C no debe estar en blanco.";
    }else {
      
// si todo ha sido ingresado correctamente realizas la operacion respectiva ya sea enviar email o guardar en la base de datos
    
}
  }else {
     
// si no se han enviado los datos muestras el formulario
  
}
?>
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #7 (permalink)  
Antiguo 23/09/2007, 14:11
 
Fecha de Ingreso: enero-2002
Mensajes: 237
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: fromulario validacion y despliegue de errores

Vale, muchas gracias. Revisare tu código.
Graxx por la ayuda
  #8 (permalink)  
Antiguo 24/09/2007, 07:15
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: fromulario validacion y despliegue de errores

hola, mi opinion es que se debe validar con java script y con php, con ambos, java script es mas rapido, no se recargara la pagina si el usuario introduce valores no validos, y php para mi es mejor, pero se complica un poquito a la hora de validar un formulario, en el sentido que si algunos datos son correctos y otros no, se borraria todo el formulario y a empesar de nuevo con todo, es ahi donde hay que hacer varias cosas.

si se envian campos vacios o con valores incorrectos, que de un mensaje de error, pero que no se borren los campos correctos (al recargar la pagina), asi no se molestaria el usuario en llenar el form otra vez.

yo estoy haciendo algo asi, y la validacion hasta ahora la estoy haciendo con php (despues hago lo de java script), pero me falta esta parte, por que seria muy incomodo para el usuario que despues de llenar todo un formulario, si se equivoco solo en una coma, tener que escribir toooooOo otra vezzzzzzZz
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #9 (permalink)  
Antiguo 24/09/2007, 10:21
 
Fecha de Ingreso: enero-2002
Mensajes: 237
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: fromulario validacion y despliegue de errores

Bueno, les cuento que ya me resultó. Lo hice con php y cuando el formulario contiene errores, se impreime con letras rojas el error al lado del campo que debe modificarse y los otros datos permanecen sin modificacion. Asi el usuario sabe qué datos corregir. Como el mio es un formulario de 7 campos en que 4 son obligatorios, no hay tanta demora ni mucho que procesar, asi que bien por ese lado. Sólo debo pulir las validaciones.
Gracias a todos por la mano!!!
  #10 (permalink)  
Antiguo 24/01/2008, 11:34
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: fromulario validacion y despliegue de errores

Cita:
Iniciado por VALAQUIA Ver Mensaje
Bueno, les cuento que ya me resultó. Lo hice con php y cuando el formulario contiene errores, se impreime con letras rojas el error al lado del campo que debe modificarse y los otros datos permanecen sin modificacion. Asi el usuario sabe qué datos corregir. Como el mio es un formulario de 7 campos en que 4 son obligatorios, no hay tanta demora ni mucho que procesar, asi que bien por ese lado. Sólo debo pulir las validaciones.
Gracias a todos por la mano!!!

Hola... me gustaria saber como lo hiciste... el php de validacion lo has puesto en una pagina aparte o dentro de la misma pagina donde tienes el form y si es asi como lo hiciste?

gracias
  #11 (permalink)  
Antiguo 24/01/2008, 13:01
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: fromulario validacion y despliegue de errores

bueno, este post es algo viejito, tanto que ya aprendi a validar y todo eso, jejeje, bueno, al grano, la validacion y el procesado de los datos los hago en la misma pagina, nunca he probado enviar nada a otra pagina, creo que se complica asi el envio de mensajes de error, seria algo asi:
Código PHP:
<?php
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){ // verifico si es enviado el form
    
if(!empty($_POST['nombre']) && $_POST['apellido']){ // verifico que los campos no esten vacios
        
$nombre $_POST['nombre'];
        
$apellido $_POST['apellido'];
        
// hago la consulta
        
$insert mysql_query("INSERT INTO tablaUsuarios bla bla bla.....");    
    }else{ 
// en caso que esten los campos vacios, envio un mensaje de error
        
echo "ERROR...! Debe llenar todos los campos del formmulario";
    }
}
?>
<form name="usuarios" method="post" action="<?php $_SERVER['PHP_SELF'?>">
    nombre:
    <input type="text" name="nombre"><br>
    apellido:
    <input type="text" name="apellido"><br>
    <input type="submit" name="enviar" value="Enviar">
</form>
es mas o menos asi, hay otras cosas que debes ver, como que si se llena un solo campo, que el otro no pierda el valor que tiene, eso se resuelve asi:
Código PHP:
<input type="text" name="nombre" value="<?php echo $nombre ?>">
pero si pasa bien el form, debes destruir luego las variables, para que no te ponga los valores nuevamente, y no digo mas porque me estoy enredando y no quiero enredarte a ti

saludetes y suerte claro
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #12 (permalink)  
Antiguo 27/01/2008, 23:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: fromulario validacion y despliegue de errores

pero como haces para que te salga el mensaje en rojo junto al campo vacio?
  #13 (permalink)  
Antiguo 28/01/2008, 08:03
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: fromulario validacion y despliegue de errores

algo asi, debes adaptarlo al codigo que ya tienes:
Código PHP:
<?php
if(empty($_POST['nombre'])){
    
$nombreError "Llenar este campo";
}
?>
<input type="text" name="nombre" value="<?php echo $nombre ?>"><?php echo $nombreError?>
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #14 (permalink)  
Antiguo 29/01/2008, 15:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: fromulario validacion y despliegue de errores

que estoy haciendo mal?

asi lo tengo pero o consigo que se vea el mensaje de error a la derecha del campo nombre...


<?php

function show_form($name="",$nombreError="")
?>

<form name="form1" action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post">

<input name="name" type="text" id="name" size="30" value="<? echo $name; ?>"><?php echo $nombreError; ?>

<?php
}
$nombreError = "";

if($HTTP_SERVER_VARS['REQUEST_METHOD']!='POST') {

show_form();

} else {

if (empty($HTTP_POST_VARS['name']))) {

$nombreError = "Llenar este campo";
print "<p>You did not fill in all the fields, please try again!</p>\n";
echo $nombreError; // puse esto para ver si cogia la variable y la coge
show_form($HTTP_POST_VARS['name'],$HTTP_POST_VARS['$nombreError']); // me da a mi que el error esta aqui que no "manda" el valor de $nombreError al formulario

}

Cuando hace el if no consigo que me mande el valor de $nombre error al input.. tengo la impresion ue el error esta en show_form($HTTP_POST_VARS['name'],$HTTP_POST_VARS['$nombreError']); porque si me deja vivible el valor de nombre si el campo no lo deje vacio, peor no consigo que me envie el nuevo valor de $nombreError...

alguna idea?
  #15 (permalink)  
Antiguo 30/01/2008, 08:40
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: fromulario validacion y despliegue de errores

lo que veo es que te estas enredando al crear la funcion show_form, y tambien $HTTP_SERVER_VARS, trata con $_SERVER en su lugar, ademas, que si tu server esta soportando PHP 5 o superior, deberias usarlo asi, hecha un vistazo por aqui:
http://www.php.net/manual/es/reserved.variables.php

de todas formas el ejemplo que te puse tiene que funcionar:
Código PHP:
  <?php
if(empty($_POST['nombre'])){
    
// si el campo nombre viene vacio
    // entonces la variable $nombreError tendra un valor
    
$nombreError "Llenar este campo";
}    
// de lo contrario sera una cadena vacia
      // y se mostrara si contiene algo
?>
<input type="text" name="nombre" value="<?php echo $nombre ?>"><?php echo $nombreError?>
saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
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 01:38.