Cita:
Iniciado por miktrv Hola buenas,
Estoy desarrollando el típico panel de administración, ( mi primer trabajo con codeigniter ), y quería saber cual es la mejor manera de comprobar si la sesión de usuario admin esta activa o no.. yo ahora estoy usando la típica comprobación
Código PHP:
if ($this->session->userdata('logged_in')) {
En cada uno de los métodos de mis controladores.. pero me parece un poco engorroso... se puede hacer esta comprobación de otra manera? por ejemplo, en el constructor de cada clase?
Añado el siguiente código que acabo de encontrar:
Código PHP:
Ver originalfunction checkSession()
{
if (!$this->session->userdata('is_logged_in'))
{
//the session has expired!
$data['title'] = "Session expired";
redirect('welcome', 'refresh');
}
}
Así sería correcto?
Un saludo!
Hacerlo en una libreria o un helper te va a ahorar trabajo, pero no quita de hacerlo como lo estas haciendo. Ahora para que este disponible en todos tus metodos sin tener que repetir lo mismo, usa las funcionalidades de PHP5
Código PHP:
Ver originalclass tuController extends Controller{
public function __construct() {
parent::__construct();
// Check if the logged user
$this->access_library->check_logged_in();
}
function .....{
}
}
En tu access_library haces las operaciones pertinentes en este caso: si el usuario no esta logueado y no se encuentra en la session, rediririgir al form de login.
Ejm:
Código PHP:
Ver originalclass Access_library
{
// Constructor
public function __construct()
{
{
$this->CI =& get_instance();
}
}
public function check_logged_in()
{
if ($this->CI->session->userdata('logged_in') != TRUE)
{
redirect('user/login', 'refresh');
}
}
}
Puse el codigo como referencia y segun recuerdo, no esta probado, pero la idea esta presente.-