Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2011, 14:07
martin535
Invitado
 
Mensajes: n/a
Puntos:
Codeigniter Problema con array y sesiones

Estimados Foristas tengo el siguiente inconveniente con CI, este metodo se encuentra en el controlador "propiedades" y es llamado desde la vista recibiendo
como parametros categoria/id, los valores llegan sin problemas y la idea es ir guardando en la session las distintas selecciones que hacen para filtrar los
resultados
Las sesiones estan en DB ya que me permite ver la informacion y no tengo problemas con el limite de las cookies.

El problema especifico es que la PRIMERA vez que se llama a filtro, se ejecuta la parte de sesiones tanto la registracion de VAR como la de VAR1 que esta
en el else, pero los echo se ejecutan bien o sea la primera vez se muestra P1 y la segunda y siguientes P2.
Probe en algun momento hacer un unset en el else antes de volver a registrar el array en la session y resulta que en el primer llamado a filtro se ejecutaba
en unset dando siempre false var1 entrando en un ciclo infinito con la misma informacion.
Les dejo el codigo y desde ya agradezco su ayuda


Código PHP:
Ver original
  1. function filtro($categoria,$id){
  2.        
  3.        
  4.        
  5.         $var1 = $this->session->userdata('var');
  6.        
  7.         if($var1===FALSE){
  8.             $sess_array = array();
  9.             $sess_array = array(
  10.                     $categoria=> $id
  11.                    
  12.                     );
  13.             $this -> session -> set_userdata('var', $sess_array);
  14.            
  15.             var_dump($sess_array);
  16.             echo "p1";
  17.         }else{
  18.             $sess_array = array();
  19.             $sess_array = array(
  20.                     $categoria=> $id
  21.                    
  22.                     );
  23.                    
  24.             $aresu = array_merge($var1,$sess_array);
  25.            
  26.             $this -> session -> set_userdata('var1', $aresu); //aca lo correcto tendria que ser var1 pero puse esto para que vean el problema
  27.             echo "p2";
  28.            
  29.         }
  30.         }


La primera ves que se ejecuta var tiene esta info visto con var_dump
array(1) { ["barrios"]=> string(1) "1" }

Pero se guarda esto en la sesion , pueden ver que esta var y va1 con informacion

a:2:{s:3:"var";a:1:{s:7:"barrios";s:1:"1";}s:4:"va r1";a:1:{s:7:"barrios";s:3:"inc";}}


Saludos
Martin