Foros del Web » Programando para Internet » PHP »

dato de un array

Estas en el tema de dato de un array en el foro de PHP en Foros del Web. Hola a todos soy un novaton en esto de PHP, tengo tres paginas: P1- Formulario que recoge los datos y los envia P2- recibe los ...
  #1 (permalink)  
Antiguo 05/11/2003, 15:00
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
dato de un array

Hola a todos soy un novaton en esto de PHP, tengo tres paginas:
P1- Formulario que recoge los datos y los envia
P2- recibe los datos y los guarda en una session: aqui los recibe bien y guarda todas las variables en el array y me las muestra todas perfectamente con este codigo

<? $mensaje='';
foreach ($_POST as $campo => $valor)
{
$mensaje.="$campo = $valor \n";
}
echo nl2br($mensaje);
?>

3- aqui viene el problema, lo que quiero es que me muestre solo una variable de las 9 que tiene guardada el array y no todas.
Escribo esto pero no me muestra nada
<? echo "Dia: " . $HTTP_POST_VARS["DAY"]. "\n"; ?>

Gracias de antemano
  #2 (permalink)  
Antiguo 05/11/2003, 15:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Has pasado los valores recibidos por 2 de alguna forma a 3? Porque los arrays $_POST se recrean en cada peticion con solo las variables del formulario de la pagina origen. Asi que en 3 solo tienes en $_POST las variables del formulario mostrado en 2.

Una opcion seria crear un campo hidden para cada una de las variables recibidas en 2 en el formulario de 2. Asi al hacer el submit tambien se enviarian.

O tambien podrias guardar en 2 las variables de 1 dentro de una sesion. Y en 3 leer los valores de esa sesion.

En el manual y en las FAQs tienes informacion sobre las sesiones. Y ahora que lo veo, en la FAQs tienes lo de los campo hidden http://www.forosdelweb.com/showthrea...576#post360576

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 05/11/2003, 15:35
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Hola josemi, en la segunda pagina no tengo otro formulario aqui lo que hago es mostrar los datos enviados desde el formulario de P1 y despues de guardados en un array los muestro en la P2 y despues quiero solo 1 o 2 de esos datos en la P3, que ahi se donde no puedo ver nada

Gracias de nuevo
  #4 (permalink)  
Antiguo 05/11/2003, 15:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, entonces la solucion de la sesion todavia es valida.

Si no tienes formulario, ¿como pasas de 2 a 3? Si es con un link, podrias pasar por ese link las variables. Algo como:
Código PHP:
<a href="3.php?var1=<?php echo $_POST['var1']; ?>&var2=<?php echo $_POST['var2']; ?>">Link</a>
Y en 3.php las recoges con:
Código PHP:
echo $_GET['var1'].'<br>'$_GET['var2']; 
Lo importante es que comprendas que PHP solo obtiene informacion de la pagina de origen, no almacena nada de las anteriores. En tu caso 2 seria el origen. Cuando acabas de ejecutar en el servidor 2, PHP borra el $_POST.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 06/11/2003, 03:17
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
P2- recibe los datos y los guarda en una session:
Si ya guardas los datos en una sesión... entonces accedes a ellos mediante $_SESSION['variable']...

Saludos
  #6 (permalink)  
Antiguo 06/11/2003, 03:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Nota mental: leer las preguntas completas.

Es que no vi que ya lo metia en la sesion

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 06/11/2003, 08:19
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Funciono perfecto, voy a utilizar la sugerencia de josemi, ya que necesito el valos de una variable para continuar en la otra pagina

Un millon de gracias a los dos!!
  #8 (permalink)  
Antiguo 06/11/2003, 08:43
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Bueno me parece que sigo con algun problema logro pasar el valor de una variable por el link pero no logro imprimir en pantalla el valor de las otras variables que estan en la session
  #9 (permalink)  
Antiguo 06/11/2003, 17:51
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Está definiendo bien la sesión?... Si la estás definiendo bien, entonces ya no es necesario pasar el valor por el link.
¿Sabes lo que es una sesión?¿verdad?¿Utilizas session_start()?... Es que algo me dice que lo que haces no es guardarlas en una sesión como dices en el post inicial. Creo que simplemente los estás guardando en un array.
Si no, lee el link que te puso josemi a las FAQ's sobre sesiones.

Saludos
  #10 (permalink)  
Antiguo 06/11/2003, 17:59
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Uuuuupss... el link que puso josemi no iba a sesiones.. sino a pasar datos entre formularios... perdón por la distracción.
Acá te dejo el link a las FAQ's al tema de sesiones:

http://www.forosdelweb.com/showthrea...992#post238992

Lee ese post y el siguiente.

Si ya sabías lo que era una sesión y la estabas definiedo bien... entonces te pido disculpas por no interpretar bien.

Saludos
  #11 (permalink)  
Antiguo 07/11/2003, 09:31
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Ante todo muchas gracias por la ayuda, soy bastante novaton.
No logro obtner el valor de una de las variables que estan dentro de una session
- Primero tengo un formulario que envia tres datos con el metodo POST.:
-MONTH
-DAY
-YEAR


- Segundo los recibo asi
<?php
session_start();
session_register("mensaje");
?>

Con esto logro imprimir en pantalla todos los datos de la session que estan dentro de un array

<? $mensaje='';
foreach ($_POST as $campo => $valor)
{
$mensaje.="$campo = $valor \n";
}
echo nl2br($mensaje);
?>


- Despues tengo una tercera página que escribo el session_start(); en la cual quiero mostrar todos los datos sin tener que enviar los mismos por el link, escribo esto pero no me muestra nada

<? echo "Mes: " . $_POST["MONTH"]. "\n"; ?>
  #12 (permalink)  
Antiguo 07/11/2003, 11:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
$_POST no es una sesión .. Lo que ves ahí es justo lo que enviastes en tu formulario anterior .. y hasta ahí llegan esos datos en $_POST ..

En tu caso .. estás registrando la variable de sesión: "mensaje" (que concatenas tus 3 variables (day, month, year) .. Así que en tu 3º página o consecutivas tendrás que leer ese valor:

Código PHP:
<?
session_start
();
echo 
$HTTP_SESSION_VARS['mensaje'];
?>

Pero, si quieres tener cada una de esas variables (day, etc) por separado, debes de registrar tus variables en la sesión al llegar a tu script2.php .. (es decir, al que recibe los datos de tu formulario .. al que apuntas en tu action= ...)

script2.php
Código PHP:
<?
session_start
();
$_SESSION['MONTH']=$_POST['MONTH'];
$_SESSION['DAY']=$_POST['DAY'];
$_SESSION['YEAR']=$_POST['YEAR'];

// Procesas lo que tengas que hacer con tus $_POST['variable']

?>
Y en el script3.php o consecutivos ..

Código PHP:
<?
session_start
();
echo 
$_SESSION['DAY'];
//etc..
?>
Un saludo,

PD: observa que no uso session_register() .. uso directamente para registrar y leer mis valores de mis variables de sesión los arrays Supergloblales.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 07/11/2003, 13:25
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
De acuerdo

Hola Cluster EXCELENTE tu respuesta, es eso lo que necesitaba exactamente un millon de gracias a ti y todos los que me ayudaron a entender mejor este tema de la sesiones
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 16:20.