Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] CodeIgniter Session Codeigniter No se mantienen

Estas en el tema de Session Codeigniter No se mantienen en el foro de PHP en Foros del Web. Hola como estan , los molesto con un problema de session en codeigniter. El tema es que cuando guardo los valores en $this->session->userdata() al redireccionar ...
  #1 (permalink)  
Antiguo 12/09/2017, 18:58
 
Fecha de Ingreso: noviembre-2014
Mensajes: 15
Antigüedad: 2 años, 10 meses
Puntos: 0
Session Codeigniter No se mantienen

Hola como estan , los molesto con un problema de session en codeigniter. El tema es que cuando guardo los valores en $this->session->userdata() al redireccionar a otro controlador los datos se pierden.
Si alguno puede aydudarme desde ya muchas gracias. He googleado un monton y nose donde le puedo estar errando.


Esta es la funcion del controlador

Cita:
public function validar() {
if ($_POST['usuario'] != "" && $_POST['clave'] != "") {
$usuario = $this->login_model->getValidarUsuario($_POST['usuario'], $_POST['clave']);
if (!empty($usuario)) {

$sessionData = array(
'usuario' => $usuario[0]['USUARIO'],
'login' => TRUE
);
$this->session->set_userdata($sessionData);

redirect('index.php/cpanel');
} else {
redirect('index.php/login');
}
} else {
redirect('index.php/login');
}
}
Y este seria el del cpanel

Cita:
public function index() {
var_dump($this->session->userdata());

$this->load->view('cpanel/cprincipal_view');
}
Al querer imprimir me muestra la sesion vacia.

Esta en el autoload

$autoload['libraries'] = array('database','Form_validation','session');

He cargado la libreria dentro de los constructores, la he quitado pensando que esto podia limpiar la sesion y tampoco.

$this->load->library('session');

De las cookie no he tocado nada

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
  #2 (permalink)  
Antiguo 12/09/2017, 23:25
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.615
Antigüedad: 8 años
Puntos: 188
Respuesta: Session Codeigniter No se mantienen

Saludo

Uhm, pues en vez de googlear tanto,
mejor ve a la documentación del framework,
es de las mejores que hay.

Ahora, cosas como estas:

Código PHP:
Ver original
  1. $_POST['usuario']

NO van.
En su lugar, va esto.

Código PHP:
Ver original
  1. $this->input->post('usuario')

En cuanto a la carga de la librería,
podría intentarse con:

Código PHP:
Ver original
  1. $this->load->library('session');

Eso por ahora.

Ah, preguntas:
- Versión de php (¿Esta incluido en un paquete como xampp, wampp, etc?)
- Versión de codeigniter

Listo.
  #3 (permalink)  
Antiguo 13/09/2017, 17:14
 
Fecha de Ingreso: noviembre-2014
Mensajes: 15
Antigüedad: 2 años, 10 meses
Puntos: 0
Respuesta: Session Codeigniter No se mantienen

Gracias por responder, ahi hago el cambio de la observacion q me hiciste de los
$this->input->post('usuario')

La version de codeigniter es la 3.0.6.
Estoy utilizando xampp v3.2.2


Lo de la carga de la libreria lo intente poniendolo dentro del constructor,
$this->load->library('session'); y nada.
La verdad que nose donde esta el problema. Estoy nuevamente leyendo la documentacion a ver que otra cosa puedo intentar o que he podido omitir.
  #4 (permalink)  
Antiguo 14/09/2017, 03:21
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.615
Antigüedad: 8 años
Puntos: 188
Respuesta: Session Codeigniter No se mantienen

Saludo.

De nada.

Bueno, yo estoy usando la versión 3.1.3 de CodeIgniter
y la versión 3.1.0 Beta 6 de Xampp.

Pues que raro que te este molestando,
sin embargo, he bajado la versión 3.0.6
y ya la probé y funciona.

Te cuento lo que tengo en los archivos.

autoload.php

Código PHP:
Ver original
  1. $autoload['libraries'] = array('session');
  2. $autoload['helper'] = array('url');
  3. $autoload['model'] = array('login_model');


controllers/Login.php

Código PHP:
Ver original
  1. public function validar() {
  2. /*deje la carga en comentario aquí porque en autoloads ya se carga
  3.    pero si se quisiera hacer lo contrario, es decir, no cargar en autoload
  4.    y cargarla aquí, también funciona.
  5. */
  6.     //$this->load->model('login_model');
  7.     if ($this->input->post('usuario') != "" && $this->input->post('clave') != "") {
  8.     $usuario = $this->login_model->getValidarUsuario($this->input->post('usuario'), $this->input->post('clave'));
  9.     if (!empty($usuario)) {
  10.     $sessionData = array(
  11.     'usuario' => $usuario[0]['USUARIO'],
  12.     'login' => TRUE
  13.     );
  14.     $this->session->set_userdata($sessionData);
  15. //aquí verifiqué si asignaba bien o no en principio, prueba OK
  16. //print_r($this->session->userdata); exit;
  17. // en los redirect quite el index.php
  18.     redirect('/cpanel');
  19.     } else {
  20.     redirect('/login');
  21.     }
  22.     } else {
  23.     redirect('/login');
  24.     }
  25.     }


routes.php

Código PHP:
Ver original
  1. $route['default_controller'] = 'Login';
  2. $route['validar'] = 'Login/validar';

Las cookies tienen los mismos valores que publicaste,
son los que vienen por default.

Y en el modelo, no cargue bd ni nada,
solo algo dummie para la prueba.

Login_model.php

Código PHP:
Ver original
  1. public function getValidarUsuario($user, $pass)
  2.         {        
  3.             if( $user == 'user1' && $pass == 'pass2')
  4.                 return array(array('USUARIO'=>'user1conpass2'));
  5.         }

Y el Cpanel con su var_dump quedó igual, y lo muestra bien.

En cuanto al xampp, no creo que de conflicto,
sin embargo, has un phpinfo() para ver que
todo este bien (la librería de sesión cargada, etc)

Ya nos contarás.
  #5 (permalink)  
Antiguo 14/09/2017, 18:00
 
Fecha de Ingreso: noviembre-2014
Mensajes: 15
Antigüedad: 2 años, 10 meses
Puntos: 0
Respuesta: Session Codeigniter No se mantienen

En el phpinfo lo unico que veo es el session.auto_start que esta en off tanto en local value y en master value. No se si estab bien que este asi o si debo activarlo. El resto por lo que veo parece estar bien. Probe con chrome, firefox y el resultado es el mismo. Voy a seguir googleando a ver si encuentro algun ejemplo andando para descargarlo y compararlo si anda. Por tutoriales he hecho todo y sin resultado.
  #6 (permalink)  
Antiguo 14/09/2017, 18:45
 
Fecha de Ingreso: noviembre-2014
Mensajes: 15
Antigüedad: 2 años, 10 meses
Puntos: 0
Respuesta: Session Codeigniter No se mantienen

Listo, ya esta solucionado. Por lo que vi googleando, es un bug del framework, cosa que me parecio extraño pero me funciono. Baje la ultima version de codeigniter, y reemplaze la carpeta system de mi proyecto por la de la ultima version de CI.
Con esto ya pude hacer el envio se las session sin ningun problema.

Muchas gracias por la ayuda!!!!



La zona horaria es GMT -6. Ahora son las 23:08.