Foros del Web » Programando para Internet » PHP »

Paso por POST de un formulario completo

Estas en el tema de Paso por POST de un formulario completo en el foro de PHP en Foros del Web. Hola amigos: Me gustaría saber cómo pasar todas las variables de un formulario a otra página. Estoy intentándolo, y con "serialize" lo consigo pero tengo ...
  #1 (permalink)  
Antiguo 08/11/2010, 10:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Paso por POST de un formulario completo

Hola amigos:

Me gustaría saber cómo pasar todas las variables de un formulario a otra página. Estoy intentándolo, y con "serialize" lo consigo pero tengo problemas que comentaré más adelante.

Mi proceso es el siguiente:

1) Tengo el formulario con varios botones, con action=recoge.php

2) En recoge.php se pregunta por cada botón, si se ha pulsado uno u otro.

3) Si se pulsa uno de los botones (concretamente uno que generará un PDF gracias a la librería ezPDF), hago esto (recoger todos los datos introducidos en el formulario y serializarlos):

Código PHP:
if (isset($_POST['crearPDF'])){
  
$tmp serialize($_POST);
  
$tmp urlencode($tmp);
  
header("Location: ../pdf/generaPDF.php?elemento=".$tmp);
  exit;

4) En generaPDF.php se hace lo siguiente para empezar a trabajar con los datos que se pasan:

Código PHP:
$recoge $_GET['elemento'];
$todoForm stripslashes($recoge);
$todoForm urldecode($todoForm);
$todoForm unserialize($todoForm); 
Mi pregunta es la siguiente: ¿Cómo pasar por POST y no por GET? Si el get es muy largo da error y además el IE da problemas mientras que con firefox se crea siempre el PDF sin problemas (a no ser que el get sea demasiado largo, en ese caso ambos navegadores fallan).

¡Muchísimas gracias de antemano!
  #2 (permalink)  
Antiguo 08/11/2010, 10:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paso por POST de un formulario completo

Cita:
Iniciado por kabe_jrr Ver Mensaje
Me gustaría saber cómo pasar todas las variables de un formulario a otra página.
usa sesiones...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/11/2010, 10:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Paso por POST de un formulario completo

De acuerdo, echaré mano de sesiones. Ahora bien... ¿cómo? porque sé usarlas, pero más o menos... ¿podrías darme algún ejemplo para este caso por favor?

Y una duda que me viene. De momento mi aplicación no usa en ningún sitio sesiones pero en un futuro las usará (para usuarios validados y tal)... si ahora las uso para esto, ¿afectará en algo a las que usaré más adelante o podrán convivir estas sesiones como las que vendrán?

De nuevo, muchas gracias.
  #4 (permalink)  
Antiguo 15/11/2010, 09:04
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Paso por POST de un formulario completo

Con sesiones me funciona perfectamente, gracias por la idea!

De todas formas, como digo en mi comentario anterior, tengo la duda de si esto me afectará a lo que tengo pensado hacer un futuro: usar sesiones también para la confirmación y validación de usuarios registrados.

¡Saludos y gracias!
  #5 (permalink)  
Antiguo 15/11/2010, 09:19
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: Paso por POST de un formulario completo

Cita:
Iniciado por pateketrueke Ver Mensaje
usa sesiones...
yo me pongo más sarcástico todavía.... no uses sesiones, o dime, quieres que las variables sobrevivan todo el tiempo de navegación?, acaso no fue pensando en este comportamiento que se crearon las cookies? y sí, ciertamente las sesiones usan cookies (esto último no tiene nada que ver).

session guarda las variables en el servidor, pero a tí no te importa guardarlas en el servidor.

cookie guarda las variables en el navegador o en el cliente, esto es mejor y no "ensucias" tanto el código, pues si luego piensas poner soporte para login y esas cosas habrá mucha basura en la variable $_SESSION, recuerda que conforme vallas ampliando la aplicación, el tema de optimización se vuelve más importante.
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #6 (permalink)  
Antiguo 15/11/2010, 10:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Paso por POST de un formulario completo

De hecho es mucho mejor usar sesiones, las cookies al estar guardadas en el cliente son vulnerables a algún ataque, y no es necesario que "ensucies el código" si lo haces bien puedes pasar los datos sin ningún problema:

pagina1.php:
Código PHP:
Ver original
  1. $_SESSION['datos_formulario'] = $_POST;
  2. header('Location: pagina2.php');

pagina2.php
Código PHP:
Ver original
  1. $datos = $_SESSION['datos_formulario'];
  2. unset($_SESSION['datos_formulario']);

y listo, ya solo los usaste 1 sola vez para el paso de datos, y no tuviste que establecer una cookie muy grande (que también tienen un limite de tamaño) y los datos estan seguros en el servidor.
  #7 (permalink)  
Antiguo 16/11/2010, 01:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Paso por POST de un formulario completo

Gracias Jaao_death y GatorV por vuestras respuestas.

Mi idea fue hacer precisamente lo que comenta GatorV, un poquito diferente pero lo que he hecho, en esencia, es eso. He utilizado dos funciones de apertura y de cerrado de sesión (que se usarán específica y únicamente para el paso de los valores de los formularios).

La variable que paso a la sesión en la apertura de sesión es el $_POST pero serializado, ya que no estaba seguro del todo si se podía pasar el $_POST así, tal cual. Además creo una variable de sesión llamada 'AUTH_FORM' que controlará el cerrado.

En la función de cerrado de sesión (específica para estos casos) compruebo si la var. de sesión 'AUTH_FORM' está creada. Si está creada, hago unset de la variable de sesión que se creó con los datos del formulario, y luego para finalizar hago session_destroy.

Quizá un poquito más enrevesado como yo lo he hecho, pero como digo en esencia es más o menos lo mismo de GatorV.

Entonces, ¿queriendo más adelante incluir otros controles de sesiones (como el login), con esta forma de hacerlo, en principio no habrá problemas, verdad?
  #8 (permalink)  
Antiguo 16/11/2010, 10:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Paso por POST de un formulario completo

Claro de esa forma tu controlando las variables de sesión que utilizes puedes incorporar un login y lo que quieras.

Saludos.

Etiquetas: completo, post, formulario
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 15:49.