Foros del Web » Programando para Internet » PHP » CodeIgniter »

La cookie de sesion no semantiene

Estas en el tema de La cookie de sesion no semantiene en el foro de CodeIgniter en Foros del Web. Estimados: Tengo problemas con mis datos de sesiones en codeigniter, cada vez que se cambia de controlador la session se crea de nuevo pero no ...
  #1 (permalink)  
Antiguo 07/10/2012, 15:50
 
Fecha de Ingreso: febrero-2011
Ubicación: quito
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Mensaje La cookie de sesion no semantiene

Estimados:

Tengo problemas con mis datos de sesiones en codeigniter, cada vez que se cambia de controlador la session se crea de nuevo pero no se mantienen los userdata explico como tengo configurado mi framework.

Código PHP:

$config
['sess_cookie_name']        = 'cendendt.com';
$config['sess_expiration']        = 300;
$config['sess_expire_on_close']    = TRUE;
$config['sess_encrypt_cookie']    = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']        = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent']    = FALSE;
$config['sess_time_to_update']    = 300
como pueden ver he modificado algunos parámetros, he estado cambiando los valores pero no funciona, cada vez que se carga una pagina diferente se reinicia la cookie... estaba revisando los valores de la cookie y me di cuenta que se reiniciaban cada vez que se cambia de controlador, e la base de datos pasa lo mismo solamente cuando cambio de controlador se crea un nuevo registro de la cookie con los valores por defecto, perdón si estoy mal pero tengo entendido que la galleta debería mantenerse por 300 segundos según mi configuración pero esto no está pasando. ¿Que es lo que estoy haciendo mal?

También he probado con las dos maneras de cargar la librería de session, lo hice con el autoload y lo hice desde el constructor de cada controlador. pero la situación es la misma. ya me leí el manual de session de framework y no se que es lo que estoy omitiendo.. :(

Código PHP:

    
/**
    * Funcion constructora
    */
    
public function __construct(){
        
parent::__construct();        

        
$this->load->library('session')    ;
        
$this->load->model('m_basedatos');        
        
$this->load->library('form_validation');        
    } 
Forma e la que agrego información a session, lo cual funciona muy bien

Código PHP:

$sesion_data 
= array(
                                
'user' => $usuario,
                                
'estado' => 'loged'
                                
);
            
$this->session->set_userdata($sesion_data); 
Este es el codigo completo de la clase


Código PHP:

    
/**
    * Carga datos principales de la pagina como titulo 
    * y foco en los menus
    */    
    
private function informacion(){
        
self::$Data_['titulo'] = 'Identfíquese...';    
        
self::$Data_['ok'] = '<div class="hero-unit container">Bienvendido, Si no puede ingresar Click 
                        <a class="btn btn-info"href="'
.    base_url() . 'index.php/clientes">Aquí</a></div>';
    }        

    
/**
    * Pagina principal de la clase
    */
    
public function index(){    
        
//destruimos posibles datos de session 
        
$this->session->sess_destroy();
        
//construimos informacion inportante
        
$this->informacion();

        
$this->Pagina_ $this->load->view('v_acabecera',self::$Data_,true);
        
$this->Pagina_ $this->Pagina_ $this->load->view('v_login','',true);
        
$this->Pagina_ $this->Pagina_ $this->load->view('v_fpie','',true);
        print 
$this->Pagina_;

    }
    
/**
    * Validamos los datos del usuario contra la base de datos
    */
    
public function identificar(){        
        
//construimos informacion inportante
        
$this->informacion();

        
$usuario;
        
$pass;

        
$this->SessionUser_ $this->input->post('usuario');
        
$this->SessionPass_ $this->input->post('pass');
        
$usuarios $this->db->get('usuarios');

        foreach (
$usuarios->result() as $key) {
             
$usuario =  $key->Usuario;
            
$pass $key->Pass;
        }
        
//caso en el que el usuario y la contraseña coinciden
        
if (($usuario == $this->SessionUser_)&&($pass == $this->SessionPass_)):

            
$sesion_data = array(
                                
'user' => $usuario,
                                
'estado' => 'loged'
                                
);
            
$this->session->set_userdata($sesion_data);

            
$this->Pagina_ $this->load->view('v_acabecera',self::$Data_);
            print (
self::$Data_['ok']);
            
$this->Pagina_ $this->Pagina_ $this->load->view('v_fpie','');    
            
        
//cuando no coincide el usuario y/o la contraseña
        
else:                    
            
self::$Data_['error'] = '<div class="alert"> Lo Siento El <b>Usuario</b> o La <b>Contraseña</b> 
                                    No Coinciden, Intentelo Nuevamente...</div>'
;    
            
$this->Pagina_ $this->load->view('v_acabecera',self::$Data_,true);
            
$this->Pagina_ $this->Pagina_ $this->load->view('v_login',self::$Data_,true);
            
$this->Pagina_ $this->Pagina_ $this->load->view('v_fpie','',true);            
        print 
$this->Pagina_;
        endif;
    }
    
    public function 
salir(){
        
$this->index();
    }

Y este es la parte de codigo de un controlador

Código PHP:

class Clientes extends CI_Controller{    
    private 
$Pagina_;
    private 
$CatalogoVistas_;
    private 
$Tabla_ 'clientes';
    private 
$Config_;
    private 
$Limit_;    
    private 
$Offset_ 50;


    public function 
__construct(){
        
parent::__construct();        
        
$this->load->library('session')    ;
        
$this->load->model('m_basedatos');
        
$this->load->library('pagination');
        
$this->load->library('form_validation');
    }


    private function 
contenidos(){
        
$this->CatalogoVistas_ = array(
                                    
'v_acabecera' => array('titulo' => 'Clientes'),
                                    
'v_bmenu' => array('titulo' => 'Clietes Cendendt')                                    
                                    );
        return 
$this->CatalogoVistas_;
    }

var_dump($this->session->all_userdata()); 
y eso solo me devuelve losvalores por defecto y no los que yo igresé.

Estaba checando los Logs y dejé un resumen de lo que me parece es lo mas importante esto es en lavisita de cuatro paginas las dos primeras son el mismo controlador y las dos ultimas son de dos controladores diferentes


DEBUG - 2012-10-05 22:06:23 --> Global POST and COOKIE data sanitized
DEBUG - 2012-10-05 22:06:23 --> Config file loaded: application/config/config.php
DEBUG - 2012-10-05 22:06:23 --> Session Class Initialized
DEBUG - 2012-10-05 22:06:24 --> File loaded: application/views/v_login.php
DEBUG - 2012-10-05 22:06:24 --> Final output sent to browser
DEBUG - 2012-10-05 22:06:24 --> Total execution time: 0.2434


DEBUG - 2012-10-05 22:06:27 --> Global POST and COOKIE data sanitized
DEBUG - 2012-10-05 22:06:27 --> Config file loaded: application/config/config.php
DEBUG - 2012-10-05 22:06:27 --> Session Class Initialized
DEBUG - 2012-10-05 22:06:27 --> A session cookie was not found.
DEBUG - 2012-10-05 22:06:27 --> Session routines successfully run
DEBUG - 2012-10-05 22:06:27 --> Final output sent to browser
DEBUG - 2012-10-05 22:06:27 --> Total execution time: 0.2088

DEBUG - 2012-10-05 22:06:28 --> Global POST and COOKIE data sanitized
DEBUG - 2012-10-05 22:06:28 --> Session Class Initialized
DEBUG - 2012-10-05 22:06:28 --> Helper loaded: string_helper
DEBUG - 2012-10-05 22:06:28 --> A session cookie was not found.
DEBUG - 2012-10-05 22:06:29 --> Session routines successfully run
DEBUG - 2012-10-05 22:06:29 --> Final output sent to browser
DEBUG - 2012-10-05 22:06:29 --> Total execution time: 0.2104

DEBUG - 2012-10-05 22:06:30 --> Global POST and COOKIE data sanitized
DEBUG - 2012-10-05 22:06:30 --> Session Class Initialized
DEBUG - 2012-10-05 22:06:30 --> Helper loaded: string_helper
DEBUG - 2012-10-05 22:06:30 --> A session cookie was not found.
DEBUG - 2012-10-05 22:06:30 --> Session routines successfully run
DEBUG - 2012-10-05 22:06:30 --> Final output sent to browser
DEBUG - 2012-10-05 22:06:30 --> Total execution time: 0.2479


Veo que en todas me dice que no e ha encontrado la cookie "A session cookie was not found"


Espero que me puedan ayudar, para mi es muy importante, no entiendo porque no puedo hacer funcionar las benditas sesiones
  #2 (permalink)  
Antiguo 20/10/2012, 07:15
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: La cookie de sesion no semantiene

estas destruyendo la session con esto $this->session->sess_destroy(); , entonces se genera una nueva
__________________
la la la
  #3 (permalink)  
Antiguo 14/12/2012, 03:29
 
Fecha de Ingreso: diciembre-2012
Mensajes: 1
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: La cookie de sesion no semantiene

Cambia el nombre de la sesión, por una palabra sin puntos ni símbolos ni nada.

Código PHP:
$config['sess_cookie_name']        = cendendt
Un saludo!

Etiquetas: Ninguno
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 04:00.