Foros del Web » Programando para Internet » PHP »

pasadas las variables de un formulario de 4 paginas, como mandar los resultados

Estas en el tema de pasadas las variables de un formulario de 4 paginas, como mandar los resultados en el foro de PHP en Foros del Web. Hola he estado buscando y me he encontrado por el foro un formulario dividido en cuatro paginas que me ha ayudado a entender como funciona ...
  #1 (permalink)  
Antiguo 01/07/2009, 14:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
pasadas las variables de un formulario de 4 paginas, como mandar los resultados

Hola he estado buscando y me he encontrado por el foro un formulario dividido en cuatro paginas que me ha ayudado a entender como funciona y como podria agregarle mas paginas o quitarle alguna.

No tengo autorizacion para agregar links aun pero el codigo al completo esta abajo.


Y ahora la pregunta, ¿Como hago para mandar los resultados que da por email? lo que quiero es un formulario compuesto de varias paginas pero que al final se pueda mandar como un formulario normal


Aqui dejo el codigo del formulario dividido en 4 paginas que Developmex dejo para los demas foreros: es muy facil de usar y a mi me funciona sin problemas.

1.PHP
________
<html>
<title>Equipo Favorito</title>
<body>
<form method=post ACTION="procesa1.php">
Cual es tu equipo de fútbol favorito ?
<input name="valor1" type "text">
<br>
Cual es tu comida favorita ?
<input name="valor4" type "text">
<br>

<br>
Cual es tu cancion favorita ?
<input name="valor7" type "text">
<br>

<br>
<input type=submit name="submit" value="submit">
</form>
</body>
<html>

PROCESA1.PHP
________________
<?
session_start(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['equipo']="$valor1";
$_SESSION['comida']="$valor4";
$_SESSION['cancion']="$valor7";

header ("Location: 2.php");
?>

2.PHP
________________________
<html>
<title>Cuantos años tienes?</title>
<body>
<form method=post ACTION="procesa2.php" >
Cuantos años tienes?
<input name="valor2" type "TEXT">
<br>
<br>
Cuantos perros tienes?
<input name="valor3" type "TEXT">
<br>

<input type=submit>
</form>
</body>
<html>

PROCESA2.PHP
__________________
<?
session_start(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['edad']="$valor2";
$_SESSION['perros']="$valor3";
header ("Location: 3.php");
?>


3.PHP
________________________
<html>
<title>Sexo</title>
<body>
<form method=post ACTION="procesa3.php">
Eres hombre o mujer?
<input name="valor3" type "TEXT">
<br>
<br>
<input type=submit>
</form>
</body>
<html>


PROCESA3.PHP
_____________________
<?php
session_start(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['sexo']="$valor3";
header ("Location: 4.php");
?>

4.PHP
______________________
<?
session_start(); // incio de uso de sesiones.
$result1=$_SESSION['equipo']; // asignamos el valor que hay en la session guardada equipo a la variable $result1
$result2=$_SESSION['edad'];
$result3=$_SESSION['sexo'];
$result4=$_SESSION['comida'];
$result7=$_SESSION['cancion'];
$result9=$_SESSION['perros'];
// variable de la session áctiva.

echo "$result1"; // muestra la primer variable
echo "<br>"; // baja un renglon
echo "$result2"; // muestra la segunda variable
echo "<br>"; // baja un renglon
echo "$result3"; // muestra la tercera variable
echo "<br>"; // baja un renglon
echo "$result4"; // muestra la tercera variable
echo "<br>"; // baja un renglon
echo "$result7"; // muestra la tercera variable
echo "<br>"; // baja un renglon
echo "$result9"; // muestra la tercera variable
?>

Última edición por spaindvds; 01/07/2009 a las 14:26
  #2 (permalink)  
Antiguo 01/07/2009, 14:41
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: pasadas las variables de un formulario de 4 paginas, como mandar los resul

Hola spaindvds.
Por lo que veo, al final tienes todo metido en estás variables:
$result1=$_SESSION['equipo']; // asignamos el valor que hay en la session guardada equipo a la variable $result1
$result2=$_SESSION['edad'];
$result3=$_SESSION['sexo'];
$result4=$_SESSION['comida'];
$result7=$_SESSION['cancion'];
$result9=$_SESSION['perros'];

Con eso ya lo tienes todo, ahora usando la funcion sendmail de php, y colocando las variables como quieras en el cuerpo del mensaje del correo, te vale. Si quieres algo más concreto, pregunta más concreto =) Un Saludo!
  #3 (permalink)  
Antiguo 01/07/2009, 14:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: pasadas las variables de un formulario de 4 paginas, como mandar los resul

Gracias Zeuslife muy rapida la respuesta, supongo que debo explicarme mejor.

De programacion no tengo mucha idea aunque hago cambios que me imagino que por logica deberian de funcionar y a veces me funcionan y a veces no.

En fin lo que digo es que donde debo poner el sendmail, de verdad que no tengo ni idea de PHP aunque si que lo uso.


Gracias de nuevo
  #4 (permalink)  
Antiguo 01/07/2009, 14:50
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: pasadas las variables de un formulario de 4 paginas, como mandar los resul

Sin la intención de ofender a nadie, esto es muy poco practico.
Yo sugeriría en todo caso, en 2.php crear campos hidden y asignarle el valor del campo de 1.php (poniéndole el mismo nombre para no confundirse) y asi continuar hasta el fin de todas las paginas.
Y asi al finalizar el formulario tendrias todas tus variables en el mismo formulario.
Pero bueno, esa es mi logica.

Contestando con una pregunta

Alguna vez has enviado un formulario por correo?

Si: Lo creas exactamente igual que antes, solo que en lugar de hacer referencia a las variables por $_POST lo haces por $_SESSION que son las que generaste, con la condición del session_start(); al inicio

No: Revisa la función mail() de php, los parámetros que necesitas. esto acepta texto plano o HTML según lo definas en las cabeceras del correo. En el cuerpo del corre colocas el texto fijo (sea plano o html) y lo vas concatenando (donde corresponda) con tus variables de sesión.

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #5 (permalink)  
Antiguo 01/07/2009, 15:16
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: pasadas las variables de un formulario de 4 paginas, como mandar los resul

avatar810 tiene razón. Yo hago lo que hago para estas cosas, es usar una sola página, y con una variable que indique si se ha rellenado el paso anterior y con varios if que comprueben el paso en el que se está, ir mostrando un formulario u otro, y en el ultimo, o meter los datos en una db, o mandarlos por correo. Bien, en tu caso, si esto es muy complicado, haz lo que dice avatar810. Coje los datos del form anterior, rellenas el siguiente formulario, pasas esos datos normalmente, y los del form anterior, mediante campos hidden, donde metas lo recogido antes. Algo así:

Código PHP:
<?php
#Recojemos las variables del form anterior
$var_1 $_GET['var1'];
$var_2 $_GET['var5'];
$var_3 $_GET['var3'];
$var_n $_GET['varn'];
?>
<!-- Aqui el siguiente form, donde, antes del submit, metes esto: -->

[...]
<input name="var_1" type="hidden" value="<? echo $var_1?>" />
<input name="var_2" type="hidden" value="<? echo $var_2?>" />
<input name="var_3" type="hidden" value="<? echo $var_3?>" />
<input name="var_n" type="hidden" value="<? echo $var_n?>" />

<!-- Y así con todos, hasta que en la ultima página, recojas todas las variables de los formularios anteriores (de la forma que te he puesto antes) y los envies así: -->

<?php
$destinatario
="la persona que recibirá el correo";
$titulo="Asunto del mensaje";
$mensaje="Aqui el cuerpo del mensajes (en texto plano, si no usalo como si fuera una nueva pag, abriendo <html> y todo eso";
$responder="[email protected]";
$remitente="El nombre que aparecerá como remitente";
$remite_email="La direccion que aparecerá como remitente";
$cabecera ="Date: ".date("l j F Y, G:i")."\n";
$cabecera .="MIME-Version: 1.0\n";
$cabecera .="From: ".$remitente."\n";
$cabecera .="Return-path: "$remite."\n";
$cabecera .="Reply-To: ".$responder."\n";
$cabecera .="X-Mailer: PHP/"phpversion()."\n";

#Ahora un if que comprueba que se envia el correo
if( mail($destinatario$titulo$mensaje,$cabecera)){
       echo 
"Mensaje enviado correctamente";
} else {
       echo 
"Error al mandar el mensaje";
}
?>
  #6 (permalink)  
Antiguo 01/07/2009, 15:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: pasadas las variables de un formulario de 4 paginas, como mandar los resul

Vale vale vale.... como diria el chavo del ocho "ME DOY".


Estoy completamente perdido pero muy agradecido por el interes en ayudarme con mi pregunta.

No se nada de Programacion lo mio es mas bien el diseño y si pillo scripts o modulos ya escritos a veces se me da bien hacerle algun pequeño cambio pero lo que me decis aqui me tira para atras.

Creo k mejor debo dejarlo para no complicar la vida a nadie, no quiero molestar.

Muchisimas gracias a los dos.
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 22:55.