Foros del Web » Programando para Internet » PHP »

Validar campos formulario

Estas en el tema de Validar campos formulario en el foro de PHP en Foros del Web. Hola a todos, he hecho un formulario cuyos datos guardo en una BBDD. Cuando le doy a guardar le digo que me guarde los datos ...
  #1 (permalink)  
Antiguo 24/10/2006, 11:01
 
Fecha de Ingreso: mayo-2005
Ubicación: Castellón
Mensajes: 321
Antigüedad: 19 años
Puntos: 0
Validar campos formulario

Hola a todos, he hecho un formulario cuyos datos guardo en una BBDD. Cuando le doy a guardar le digo que me guarde los datos y hasta ahí todo bien, pero como puedo hacer para que me valide de que se han rellenado todos los campos?? Yo cuando lo guardo lo hago a traves de otra página, y aquí si que se validar, pero en la misma página del formulario no. Me podeis ayudar??

Gracias
  #2 (permalink)  
Antiguo 24/10/2006, 11:13
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 3 meses
Puntos: 4
te dare un pekeño ejemplo de como validar si se lleno un campo de un formulario por ejemplo en nombre:

tenemos un input del tipo text y con name="nombre" pues una vez enviado los datos lo validamos de esta manera

Código PHP:
<?
   
if($_POST['nombre'] == '') { // aki preguntamos si el campo esta vacio
     
echo "El campo no debe estar en blanco";
   }else {
     
// si se escribio algo en el campo nombre ingresamos los datos a la BBDD
   
}
?>
El ejemplo es muy sencillo, espero ke te pueda servir de base.

Saludos
  #3 (permalink)  
Antiguo 24/10/2006, 11:18
 
Fecha de Ingreso: mayo-2005
Ubicación: Castellón
Mensajes: 321
Antigüedad: 19 años
Puntos: 0
Muchas gracias por tu pronta contestación, pero creo que no me sirve... Cuando yo recojo los datos los recojo en una página aparte del formulario, pero lo que yo quiero hacer es validarlos antes de que se envien los datos.

Espero haberme explicado bien. Pero de todas formas muchas gracias y si sabes como solucionarlo... ya me dices!! Salu2
  #4 (permalink)  
Antiguo 24/10/2006, 11:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por tyrula Ver Mensaje
Muchas gracias por tu pronta contestación, pero creo que no me sirve... Cuando yo recojo los datos los recojo en una página aparte del formulario, pero lo que yo quiero hacer es validarlos antes de que se envien los datos.

Espero haberme explicado bien. Pero de todas formas muchas gracias y si sabes como solucionarlo... ya me dices!! Salu2
Si hablas de "antes" de que se envien .. entonces tu respuesta está en "javascript" (que es un lenguaje del lado del "cliente" .. no del lado del servidor como es PHP).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 24/10/2006, 11:26
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 3 meses
Puntos: 4
Pues para ello kizas echando mano de javascript, aki tienes como validar formularios usando javascript, espero ke te sirva.

Saludos
  #6 (permalink)  
Antiguo 24/10/2006, 12:20
 
Fecha de Ingreso: mayo-2005
Ubicación: Castellón
Mensajes: 321
Antigüedad: 19 años
Puntos: 0
Hola ZidRick!! He probado esto y me funciona... aunque cuando me sale un error de que no se ha introducido un campo y le doy a aceptar me va a guardar el formulario. Sabes si hay alguna forma de hacer el envio de variables desde la misma funcion de javascript???

Gracias!!

P.D. Perdon por la pregunta se que no es este el foro correcto ;)
  #7 (permalink)  
Antiguo 24/10/2006, 13:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Aunque creo que esto debería estar en la sección de JAVASCRIPTS, ahí va. espero que te ayude:
imaginemos el siguiente formulario en el que te piden unos datos:
/////////////////////
<table
<tbody>
<tr>
<td>Nombre:</td>
<td></td>
<td><INPUT type="text" name=nombre></td></tr>
<tr>
<td>Apellidos:</td>
<td></td>
<td><INPUT type="text" name=apellidos></td></tr>
<input type="submit" name="Submit" value="Enviar">
////////////
ese formulario va obviamente entre las etiquetas <form>, me sigues?
bien. en el <head> de la página metes esta función:
//////////////////
<script language="JavaScript">
//Funcion Comprobar campos no vacíos
function check() {

var errorMsg = "";

//Comprobamos que el campo Nombre no está vacío
if (document.panel.nombre.value==""){
errorMsg += "\n\tNombre:\t - Debe introducir su nombre";

}
//Comprobamos que el campo Apellidos no está vacío
if (document.panel.apellidos.value==""){
errorMsg += "\n\tApellidos: - Debe introducir sus apellidos";
}
//Mostramos la ventana de error si existieran problemas
if (errorMsg != ""){
msg = "_________________________________________________ ___________________\n\n";
msg += "Los datos introducidos no han podido ser verificados porque se han detectado los siguientes errores:\n";
msg += "Por favor, corríjalos y reenvíe dicha información.\n";
msg += "_________________________________________________ ___________________\n\n";
msg += "Los siguientes errores deben ser corregidos: \n";

errorMsg += alert(msg + errorMsg + "\n\n");
return false;
}

return true;
}
// -->
</script>
/////////////////////////////

luego, en el <form> metes esto:

<form method="POST" action="pagina.php" name="panel" onSubmit="return Chequear();" >

¡¡¡y voila!!! asunto arreglado. si no están los campos rellenos, no va. como puedes ver, el 'form' tiene por 'name=panel' que es el que rige todo.
  #8 (permalink)  
Antiguo 25/10/2006, 02:58
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
De todas formas pese a validar en javascript tienes q validarlos nuevamente en PHP ya q javascript puede deshabilitarse e incluso modificarse cosas a través de la barra de direcciones (recuérdese el famoso código para saltarse la validación de Windows original).

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #9 (permalink)  
Antiguo 25/10/2006, 04:31
 
Fecha de Ingreso: mayo-2005
Ubicación: Castellón
Mensajes: 321
Antigüedad: 19 años
Puntos: 0
Muchisimas gracias!!!!!!!!!!!!! SOLUCINADO!!!!!
  #10 (permalink)  
Antiguo 25/10/2006, 07:13
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 2 meses
Puntos: 3
Siento meterme en el tema, pero estoy intentando algo parecido y quería saber cuáles son las ventajas y desventajas de usar una y otra opción, me refiero a hacerlo por php o hacerlo por javascript?
  #11 (permalink)  
Antiguo 25/10/2006, 07:21
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 3 meses
Puntos: 20
Cita:
Iniciado por ldp Ver Mensaje
Siento meterme en el tema, pero estoy intentando algo parecido y quería saber cuáles son las ventajas y desventajas de usar una y otra opción, me refiero a hacerlo por php o hacerlo por javascript?
Básicamente la diferencia que tienen entre ellas, es la misma que su diferencia en el para qué fueron creados estos códigos.

Javascript funciona del lado del cliente -navegador- y PHP del lado de servidor. Podríamos decir entonces que el usuario tiene acceso a la información de javascript, pero no a la de PHP. Considerando esto, el usuario puede evitar ese JavaScript en el momento que le apetezca, ya que ese código está en su ordenador. El servidor (PHP), en cambio, realizará SIEMPRE la acción programada y el usuario no tiene opción de rechazarla.

Javascript comprueba las casillas en el momento de enviar la información, al hacer click en el botón, y para hacer esta comprobación no necesita conectar con el servidor.

PHP comprueba los valores una vez enviados, y podrán ser declinados si así se lo pedimos.

Espero haberme explicado
  #12 (permalink)  
Antiguo 25/10/2006, 07:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por ldp Ver Mensaje
Siento meterme en el tema, pero estoy intentando algo parecido y quería saber cuáles son las ventajas y desventajas de usar una y otra opción, me refiero a hacerlo por php o hacerlo por javascript?
Realmente ambos sistemas de validación son -complementarios-

La validación en javascript "del lado del cliente" te presta funcionalidades de "usabilidad" .. es decir, tú no envias la página al servidor a validar con la consiguiente demora en enviar la página .. sin olvidar que si hay algún "error" tendrás que tratar todo el tema de vuelta de variables al cliente desde el servidor para dejar los campos que tuvieran valor correcto como estaba antes de su envio.

La validación en "PHP" o "del lado del servidor" te presta sobre todo: SEGURIDAD, .. es PHP (el "servidor") el que en última instancia valida todo lo que ingrese a un script PHP tuyo .. es ahí donde las validaciones son realmente seguras. En Javascript tu puedes saltarte fácilmente todo tipo de validaciones.

Por eso .. ambos tipos de validación son "complementarios" .. Siempre valida en PHP por seguridad y en javascript por funcionalidad/usabilidad.

Por supuesto .. com la validación PHP siempre "manda" .. puedes omitir la validación javascript si quieres por completo a costa de lo que ya mencioné: tener que enviar todos los datos del formulario en ese instante y de ahí volver a tratar las variables recibidas para entregarlas nuevamente al cliente en una página nueva (con tu formulario HTML) que compones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 25/10/2006, 07:42
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 2 meses
Puntos: 3
Muchas gracias a los dos, David y Cluster. Me ha quedado clarísimo

Ahora lo que me tengo que pensar es dónde pondría el código javascript si lo pongo, pq estoy usando un cms (e107) y no tengo muy claro dónde debería ponerlo. Y el código php de verificación lo pongo en el formulario.

Muy interesante lo de la usabilidad. No había pensado lo fastidioso que es cuando envías un formulario y te lo devuelve vacío pq te falta algo. A ver si ssoy capaz...
  #14 (permalink)  
Antiguo 25/10/2006, 07:53
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 3 meses
Puntos: 20
Cita:
Iniciado por ldp Ver Mensaje
Muy interesante lo de la usabilidad. No había pensado lo fastidioso que es cuando envías un formulario y te lo devuelve vacío pq te falta algo. A ver si ssoy capaz...
PHP puede devolverte el formulario sin necesidad de estar vacío...

Por ejemplo, puedes poner así los campos del formulario:

Código PHP:
<input name="campo" value="<?=$_POST['campo']?>">
Así, si el formulario se envió, la variable sale ahí escrita, aunque hayas mostrado algun texto de "error".
  #15 (permalink)  
Antiguo 25/10/2006, 10:51
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 2 meses
Puntos: 3
He descubierto que e107 tiene toda una estructura para dar errores y devolverte al formulario sin que se borren los campos, sólo he tenido que poner un if(!$variable1 || !$variable2 ... y ya me sale un cuadro de diálogo con el error ;) Asias!
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 02:55.