Foros del Web » Programando para Internet » PHP »

pagina de validacion. enviar post sin submit

Estas en el tema de pagina de validacion. enviar post sin submit en el foro de PHP en Foros del Web. Guenas.. hice un formulario, y tengo que hacer una validación medio complicada, entonces quisiera enviar los datos a una pagina que valide y que luego ...
  #1 (permalink)  
Antiguo 05/05/2006, 10:33
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 10 meses
Puntos: 2
pagina de validacion. enviar post sin submit

Guenas..
hice un formulario, y tengo que hacer una validación medio complicada, entonces quisiera enviar los datos a una pagina que valide y que luego envie el mismo array $_post a la pagina que inserta los datos. El tema es que no quiero que el usuario tenga que apretar un boton submit luego de la validación, sino que redirija automaticamente, pasando como mensioné anteriormente, los datos del post provenientes del formulario.

como puedo hacer esto.?
muchas gracias desde ya
  #2 (permalink)  
Antiguo 05/05/2006, 10:44
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 17 años, 11 meses
Puntos: 2
¿No seria más fácil hacer un include y realizar la validación y la inserción de los datos en el mismo script?.
Si de todas maneras queres pasar los datos de un script a otro, podes hacerlo por GET (siempre que no sean datos muy extensos o archivos) o con sesiones (esto me parece la mejor opción).
Saludos.
  #3 (permalink)  
Antiguo 05/05/2006, 10:45
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años
Puntos: 33
De acuerdo

Pues lo que buscar hacer es posible con AJAX. Te sugiero que dirijas a dicho foro.
  #4 (permalink)  
Antiguo 05/05/2006, 11:26
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 10 meses
Puntos: 2
Notwen:
La secuencia y el porqué es la siguiente.
1)formulario-->2)pagina de validacion-->3)pagina del sistema que recibe valores del POST e inserta (no se puede modificar).

Mauled:
Ignoro completamente del tema.Voy a ver de que se trata
  #5 (permalink)  
Antiguo 05/05/2006, 11:47
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 17 años, 11 meses
Puntos: 2
A ver, ¿no podes modificar la página que inserta los datos, y esta tiene que recibirlos si o si por post?
Bueno, los datos por post se envian desde el cliente al servidor, asi que se me ocurren dos cosas:
- Generas una pagina con campos ocultos y los envias automaticamente (con javascript) cuando se carge (esta opcion no me gusta mucho).
- Hacer un script que funcione como cliente. Es decir tendrias que abrir una conexion con tu servidor (mediante sockets), y enviarle los datos ahora si por post (es decir, tu scrip php funcionaria como si fuera el navegador). Esta opción quizá sea un poco complicada (no lo he hecho nunca). También puede ser que te sirvan las funciones CURL (que tampoco he utilizado).
Saludos.
  #6 (permalink)  
Antiguo 05/05/2006, 11:48
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años
Puntos: 33
De acuerdo

mmm Pues en la paqina de validacion lo que pudes hacer para re-direccionar si se cumplieron con las condiciones es hacer uso de

Código PHP:
<? header("Location:tupagiana");?>
Para más información consulta el link http://mx.php.net/manual/en/function.header.php

Una cuestion ¿Cómo se sabra que ya se acabaron de ingresar todos los datos?
  #7 (permalink)  
Antiguo 05/05/2006, 12:00
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 10 meses
Puntos: 2
Cita:
Iniciado por Notwen
- Generas una pagina con campos ocultos y los envias automaticamente (con javascript) cuando se carge (esta opcion no me gusta mucho).
No se porque no te gusta mucho. A mi me viene al pelo.
De hecho lo vengo considerando como alternativa, lo que no se es como lograr redirigir y que en esta acción envie los datos del post también. Que lo tenga que bajar en un hidden no me preocupa, pq el usuario no va a ver esa pagina, solo actua como intermedia.
  #8 (permalink)  
Antiguo 05/05/2006, 12:05
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 1 mes
Puntos: 53
saludos -...

por que no validas los datos en la misma pagina??? utilizando un isset???
  #9 (permalink)  
Antiguo 05/05/2006, 12:09
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 17 años, 11 meses
Puntos: 2
No se mucho de javascript pero supongo que seria algo asi: con php general una pagina que tenga un formulario igual al que se utiliza para ingresar los datos, pero con los campos ocultos y su atributo en action pones la pagina que debe ingresar los datos. Y en el tag body deberias poner algo asi (suponiedo que el id de tu formulario es "form1"):

Código HTML:
<body onLoad="document.getElementById('form1').submit();"> 
Espero que funcione.
Saludos.
  #10 (permalink)  
Antiguo 05/05/2006, 13:34
 
Fecha de Ingreso: abril-2006
Mensajes: 62
Antigüedad: 17 años, 11 meses
Puntos: 0
Sonrisa validación con javascript

Lo que dice Notwen está muy bien, solo que creo que en lugar de:
Código HTML:
<body onLoad="document.getElementById('form1').submit();"> 
iría:
Código HTML:
<body onLoad="document.form1.submit()"> 
porque por lo menos en mi Firefox el primer código no funciona.

Una cosa con la que deberías tener cuidado es que no todos los usuarios tienen habilitado javascript. Y en ese caso al ir a la página de validación, en lugar de redirigirse, verán solo una página en blanco. Así es que podés agregar un botón para enviar el formulario que tiene los controles ocultos.

Y si la validación es por cuestiones de seguridad, no se puede hacer sin modificar el último script PHP, el que recibe los datos y los carga.
__________________
Guish
  #11 (permalink)  
Antiguo 05/05/2006, 13:44
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 10 meses
Puntos: 2
Gracias a todos.
en realidad lo resolvi, haciendo la validación y luego puse:

<SCRIPT language="JavaScript1.2">
document.myform.submit();
</script>



No te entendí esto:
Cita:
Iniciado por Guish
Y si la validación es por cuestiones de seguridad, no se puede hacer sin modificar el último script PHP, el que recibe los datos y los carga.

saludos
  #12 (permalink)  
Antiguo 05/05/2006, 14:05
 
Fecha de Ingreso: abril-2006
Mensajes: 62
Antigüedad: 17 años, 11 meses
Puntos: 0
Exclamación validación y seguridad

No sé específicamente que es lo que estás haciendo.
Pero, por ejemplo, otra persona podría crear un html con un formulario que tenga por acción la ruta al 3er script (el que inserta los datos), y así saltear la validación que hiciste en el segundo.

Si esta 3a página es parte de tu sistema o corre en el mismo servidor podría representar un riesgo.

Por eso siempre que se pueda es conveniente hacer lo que dijo Notwen en el primer post.

Saludos.
__________________
Guish
  #13 (permalink)  
Antiguo 05/05/2006, 16:35
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 10 meses
Puntos: 2
uff..Se me habia escapado ese detalle.
  #14 (permalink)  
Antiguo 06/05/2006, 19:33
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 1 mes
Puntos: 3
al comienzo de la pagina escribe
Código:
<?php
$mensaje_error = NULL;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // validamos los parametros y 
  // guardamos el mensaje de error en "$mensaje_error"

  if ($mensaje_error == NULL) {
    // vamos a la siguiente pagina
    header("Location: siguiente_pagina.php");
    exit();
  }
}
?>
en el codigo HTML escribes:
Código:
<?=$mensaje_error?>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="post">
<!-- TU FORMULARIO -->
</form>
de esta forma, si se produce un error, aparecera la misma pagina del formulario, pero con un mensaje de error advirtiendo al usuario.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
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 05:34.