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;
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');
}
Código PHP:
$sesion_data = array(
'user' => $usuario,
'estado' => 'loged'
);
$this->session->set_userdata($sesion_data);
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();
}
}
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());
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