Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: spysecurityca en 25 Junio 2014, 03:18 am



Título: Ayuda con $_SESSION
Publicado por: spysecurityca en 25 Junio 2014, 03:18 am
Buenas les traigo mi duda.

Tengo una página A que tiene N cantidad de campos que envío a una página B que me crea una session_start(); con un array de todos los $_POST que recibió de A

Algo así tipo $_SESSION['elementos']=$_POST;

Ahora luego me voy a otra página que tambien tiene N cantidad de elementos que van a ser dirigidos hacia la página B y quiero que se agreguen al array $_SESSION['elementos'] que cree anteriormente.

El problema es que al querer agregar elementos a esa variable de session que es un array, unicamente me agrega lo ultimo y me borra lo primero, como hago para agregarle nuevos elementos a un Array que está en una variable session ?


Título: Re: Ayuda con $_SESSION
Publicado por: engel lex en 25 Junio 2014, 03:24 am
podrías intentar

$_SESSION['elementos'][]=$_POST;


Título: Re: Ayuda con $_SESSION
Publicado por: JorgeEMX en 25 Junio 2014, 06:06 am
Para tu "otra página":

Código
  1. $_SESSION['elementos']= array_merge($_SESSION['elementos'], $_POST);

Ojo que esto reemplaza cualquier valor repetido por su última aparición, según el contexto podría ser mejor usar la primera opción que te propusieron (con el inconveniente de tener que recorrer más indices).


Título: Re: Ayuda con $_SESSION
Publicado por: spysecurityca en 25 Junio 2014, 23:12 pm
Saludos y muchas gracias a ambos.

He usado la solución dada por lex y efectivamente me conserva los elementos anteriores, pero me agrega los nuevos elementos haciendo otro array (osea creando una nueva dimension).

La pregunta es ¿Como agregarlos sin que me cree la otra dimension en el array existente?.

Saludos y muchas gracias, poco a poco me han ido aclarando el camino.


Título: Re: Ayuda con $_SESSION
Publicado por: MinusFour en 26 Junio 2014, 23:09 pm
Lo que sucede es que no estas agregando los elementos del arreglo al arreglo, estás agregando un arreglo a un arreglo.

Si quieres tener todos los elementos del arreglo post en el arreglo de SESSION necesitas recorrer $_POST y agregarlo uno por uno.

Código
  1. foreach($_POST as $value) {
  2.  $_SESSION["elementos"][] = $value;
  3. }
  4.