Foros del Web » Programando para Internet » PHP »

Validación con php.

Estas en el tema de Validación con php. en el foro de PHP en Foros del Web. Hola todos. Despues de mirar en el foro no he visto lo que queria, de hecho no si se pude hacer facilmente, lo que intento ...
  #1 (permalink)  
Antiguo 15/02/2007, 09:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 0
Validación con php.

Hola todos.
Despues de mirar en el foro no he visto lo que queria, de hecho no si se pude hacer facilmente, lo que intento es validar un formulario antes de enviarlo a "otra pagina" que es donde inserta en mysql, de forma que si algun campo no es correcto lo indique y que solo lo envie cuando sea correcto.

La validacion la puedo hacer de dos formas, una, todo en la misma pagina, validación e inserción, con el "Action" del formulario apuntando a la misma pagina y dos, con javascript que me redireccione a la pagina donde hago el insert, pero claro las varibles del form ya no llegan tengo que enviarlas por session. Ninguna de las dos formas me gusta el formulario es muy grande y me gustaria separar los procesos de validar e insertar. Además la validación por javascript no la veo segura.

Alguna sugerencia, gracias.
  #2 (permalink)  
Antiguo 15/02/2007, 09:43
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: Validación con php.

No entiendo muy bien la parte de "las varibles del form ya no llegan tengo que enviarlas por session"

si lo que deseas hacer es validarlo ahi mismo antes d einstertar sin javascript podrias hacerlo enviando datos en un iframe el cual valida si e svalido inserta si no lo es simplemente le cambias por ejemplo el color a los campos erroneos
  #3 (permalink)  
Antiguo 15/02/2007, 09:47
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Validación con php.

Es que no hay muchas alternativas. Si no quieres tener que andar reenviando las variables POST por session o get, lo que te queda es validar con php justo en la misma pagina donde insertas... y como la validacion generalmente va con el formulario... te quedan las 3 cosas en una sola pagina, formulario-validacion-alta de registro.

En cuanto a la validacion con javascript, claro, javascript solo no te garantiza que los datos se envien validados, para eso...valida del lado del cliente con Javascript (evitas que se recargue la pagina y demas), y luego valida del lado del servidor, con php(evitando que los que no tengan javascript o lo tengan deshabilitado salteen las validaciones). Creo que asi es lo mejor.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #4 (permalink)  
Antiguo 15/02/2007, 10:05
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 4 meses
Puntos: 281
Re: Validación con php.

yo lo hago de esta forma:
hago un include con el codigo de la validacion en la pagina donde esta el formulario asi:
Código PHP:
if (isset($_POST['tu_formulario'])) include ('codigo_validacion.php'); 
tambien dejo el 'action' del formulario en blanco para que cargue en la misma pagina.

en la pagina 'codigo_validacion.php' hago varias cosas:
1- hago un header a la pagina de el formulario si se muestra sola. esto lo hago con un codigo de seguridad al azar que pongo en la pagina donde esta el formulario (eje. $codigo_de_seg = 'dktifje734nrhfh4';, y luego en la pagina 'codigo_validacion.php' coloco en header:
Código PHP:
if($codigo_de_seg != 'dktifje734nrhfh4'header('Location: forma.php'); 
2- verifico si el formulario ha sido enviado
3- valido los campos individuales, dependiendo del caso:

Código PHP:
if (isset($_POST['tu_formulario'])) {
//si el campo 1 esta vacio
if (empty($_POST['campo_1'])) $error "El campo 1 esta vacío";
//si el campo 1 tiene mas de 200 caracteres
if (strlen($_POST['campo_1']) > 200$error "El campo 1 tiene mas de 200 caracteres";
//etcetera...

Luego el error lo muestro en la pagina del formulacio asi:
Código PHP:
if(isset($error) && !empty($error)) echo $error
Esto es basicamente lo que hago, aunque tambien trato de acomodar todas las validaciones juntas para facil acceso y uso CSS para darle es aspecto que quiera al error.

Tambien es una buena idea usar Javascript si puedes para validar tambien del lado del cliente y asi no tener que recargar la pagina cada vez. Si tienes los dos tipos de validaciones no tienes el problema de que algun usuario no tenga el JS habilitado.

Saludos.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #5 (permalink)  
Antiguo 15/02/2007, 11:51
 
Fecha de Ingreso: febrero-2007
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validación con php.


Muchas gracias, me ha servido de ayuda estas sugerencias.
De paso se me ha ocurrido una solución que también me sirve:

En el Action = "<?php echo $urlx;?>" con lo que hasta que no
valide el formulario no salta a la pagina del insert, cuando sea correcto le pongo la url correcta y solucionado.

Gracias otra vez.
  #6 (permalink)  
Antiguo 15/02/2007, 12:41
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 4 meses
Puntos: 281
Re: Validación con php.

perdon, se me olvido ese detalle. en el codigo de validacion, despues de haber validado todo, hago lo siguiente:

Código PHP:
if(!isset($error) {
//codigo que quieras ejecutar
...
//header a la pagina de confirmacion
header('Location: confirmacion.php');

osea que todo se veria asi:

Código PHP:
if (isset($_POST['tu_formulario'])) {
//si el campo 1 esta vacio
if (empty($_POST['campo_1'])) $error "El campo 1 esta vacío";
//si el campo 1 tiene mas de 200 caracteres
if (strlen($_POST['campo_1']) > 200$error "El campo 1 tiene mas de 200 caracteres";
//etcetera...
...
//si no hay errores se prosesa el formulario y se envia al usuario a unapagina de confirmacion
if(!isset($error)) {
//codigo que quieras ejecutar
...
//header a la pagina de confirmacion
header('Location: confirmacion.php');
}

__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
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 18:02.