Foros del Web » Programando para Internet » PHP »

pasar variables POST, usando un script

Estas en el tema de pasar variables POST, usando un script en el foro de PHP en Foros del Web. Hola a todos, tengo un script que recibe variables por POST, si se produce un error vuelvo a la pagina que envio las variables, y ...
  #1 (permalink)  
Antiguo 02/05/2005, 13:42
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
pasar variables POST, usando un script

Hola a todos,

tengo un script que recibe variables por POST, si se produce un error vuelvo a la pagina que envio las variables, y me interesa conservarlas.... no se si se las puedo reenviar por post de alguna forma usando php, no quiero ni guardarlas en una BD ni usar variables de session... hay alguna forma????

espero que se entienda lo que queiro hacer, si no es asi, avisenme.

Gracias a todos,

Liber
__________________
Liber
  #2 (permalink)  
Antiguo 02/05/2005, 16:03
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
te paso un ejemplo q quizás te sirva... es un formulario con dos campos (nomrbe y mail) que se envía a la misma pagina y si mail es vacio entonces te pone el mismo nombre que antes

Código HTML:
<?php
if ($_POST['action'] == "enviar") {
  if ($_POST['mail'] != "") {
    //todas las acciones que querés que realice
    header("location:otrapagina.php");
    exit;
  } else {
    $error = "Debe ingresar una cuenta de mail";
  }
}
?>

<html><body>
<?php
if (isset($error()) { echo "<h1>".$error."</h1>"; }
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="action" value="enviar">
<input type="text" name="nombre" value=<?php echo $_POST['nombre']; ?>">
<input type="text" name="mail" value="<?php echo $_POST['mail']; ?>">
<input type="submit" value="Enviar">
</form></body></html> 
  #3 (permalink)  
Antiguo 02/05/2005, 20:37
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
en realidad yo quiero pasar las variables a otra pagina (donde esta el script) y que esa pagina me las retorne... estoy pensando que una posiblidad seria incluir esa pagina en la que manda por post con un include y hacer algo parecido a lo que vos me decis.... estoy en lo cierto?
__________________
Liber
  #4 (permalink)  
Antiguo 02/05/2005, 21:32
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
La verdad es que lo más sencillo en ese caso es utilizar variables de sesión...
¿Podrías explicar por qué no quieres utilizarlas?

Saludos
  #5 (permalink)  
Antiguo 02/05/2005, 22:14
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
este probela me surge como consecuencia de una transaccion de e-commmerce con 2checkout... luego de que paga 2checkout me madna las variables por post.. son muchas (15 + o -, talvez no les parezcan muchas, esto me lo pueden objetar!), por lo que no me parece le camino adecuado declarar 15 variables de sesion....ademas de que yo primero que nada las uso por POST... y luego de ejecutar cierto script (el que esta en el action del form que usa estas variables por POST) en caso de error la misma pagina que primero las uso por POST deberia usarlas por SESSION, cosa que se me otrna un poco complicada.... estoy pensando bien?
__________________
Liber
  #6 (permalink)  
Antiguo 02/05/2005, 22:19
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
este probela me surge como consecuencia de una transaccion de e-commmerce con 2checkout... luego de que paga 2checkout me madna las variables por post.. son muchas (15 + o -, talvez no les parezcan muchas, esto me lo pueden objetar!), por lo que no me parece le camino adecuado declarar 15 variables de sesion....ademas de que yo primero que nada las uso por POST... y luego de ejecutar cierto script (el que esta en el action del form que usa estas variables por POST) en caso de error la misma pagina que primero las uso por POST deberia usarlas por SESSION, cosa que se me otrna un poco complicada.... estoy pensando bien?
__________________
Liber
  #7 (permalink)  
Antiguo 02/05/2005, 23:03
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Va ser muchísimo más trabajoso tratar de simular el método post para volver al formulario.

Con variables de sesión solamente tienes que guardar esas 15 variables (no son tantas como crees) en la sesión y en el formulario decir "Si está tal variable de sesión, pongo su valor en el "value" de tal campo del form".
formulario.php
Código PHP:
<?php
session_start
();
?>
<form action="script_que_procesa.php" method="post">
  Usuario:
  <input type="text" name="usuario" value="<?php echo (isset($_SESSION['usuario']))?$_SESSION['usuario']:''?>" />
  <br />
  Email:
  <input type="text" name="email" value="<?php echo (isset($_SESSION['email']))?$_SESSION['email']:''?>" />
  <br />
  Usuario:
  <input type="submit" />
</form>
Y faltaría el script que procesará:
script_que_procesa.php
Código PHP:
<?php
session_start
();
// Guardas todo el array $_POST en la session:
$_SESSION $_POST;// Ojo... sólo haz esto si notienes más variables en la sesión
// Si tienes más, entonces haces un foreach y puedes manejar un array bidimensional.

// Y listo!
if(hay error){
  
header("location: formulario.php");
}
?>
<?php echo (isset($_SESSION['email']))?$_SESSION['email']:''; ?> significa:
Si está definida la variable, $SESSION['email'], escribe su valor aquí, si no, coloca ua cadena vacía.

Saludos
  #8 (permalink)  
Antiguo 02/05/2005, 23:17
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
lo intentare con las variables de sesion... de primera ya puedo recibirlas POST y pasarlas a SESION, por lo que en el form ya puedo usar las de sesion para cargar los values... puede que no sea tan dificil como pense, muchas gracias.
__________________
Liber
  #9 (permalink)  
Antiguo 03/05/2005, 07:00
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
lo hice con seesions, la primera vez que las variables llegan a la pagina, las transformo de POST a SESSION, !isset alguna de ellas como SESSION, luego en toda la pagiona uso las de session, y ya no hay problemas, si retorno a la pagina desde cualqueir lado puedo usar esas variables.

Funciono de maravilla y muy facil.

Gracias a todos.

Liber
__________________
Liber
  #10 (permalink)  
Antiguo 03/05/2005, 07:24
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
tango un problema q es el siguiente, no se como no permitirle al usuario que vuelva a registrarse, es decir, despues del pago, el usuario se registra con sus datos en el sitio, pero si vuelve para atras luego de pagar, aparece de nuevo el formulario de registro y si puede registrar de nuevo.... y asi sucesivamente pagando una vez se puede registrar 15. ¿como lo puedo solucionar? (si se entera el jefe... soy boleta)
__________________
Liber
  #11 (permalink)  
Antiguo 03/05/2005, 08:17
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
el problema que se me da es que si un usuario se registra y abre la sesion y luego la cierra, se pierden todas las variables de registro, y suponiendo que use una variable de seision para saber is YA se registro, esta variable se pierde... y al poner volver atras... puede registrarse de nuevo....

por favor cualqueir idea es bienvenida....
__________________
Liber
  #12 (permalink)  
Antiguo 03/05/2005, 09:35
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
encontre la fomra de solucionar el problema con sessiones y uso de la BD, guardando el numero de orden, gracias a todos.
__________________
Liber
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 23:17.