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

Problema con login de usuarios

Estas en el tema de Problema con login de usuarios en el foro de CodeIgniter en Foros del Web. Código PHP: function  login_check () {          $CI  = &  get_instance ();          $CI -> load -> library ( 'session' );          $CI -> load -> helper ...
  #1 (permalink)  
Antiguo 28/04/2012, 14:01
 
Fecha de Ingreso: julio-2010
Mensajes: 45
Antigüedad: 13 años, 9 meses
Puntos: 3
Problema con login de usuarios

Código PHP:
function login_check() {
        
$CI = & get_instance();
        
$CI->load->library('session');
        
$CI->load->helper('url');
        
$CI->config->item('base_url');
        

        if (
$CI->session->userdata('logged_in') != TRUE) {
                    
redirect(base_url() . 'index.php/Login''location');
        }
    } 
Esta funcion verifica que el usuario haya iniciado sesion y si no es asi lo redirige al login.

Ahora lo que yo quiero lograr es hacer algo similar alo que hacen en este foro, por ejemplo cuando quiero publicar un nuevo tema y no estoy logueado me manda al formulario de login y una vez me logueo me retorna a la pagina que anteriormente intente entrar en este caso seria a la publicacion de nuevo tema.

Me podrian indicar si existe una forma de hacer esto en codeigniter u alguna otra sugerencia,
  #2 (permalink)  
Antiguo 28/04/2012, 14:40
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con login de usuarios

Nunca he tocado CI pero si guardas la página actual en una variable de sesión de manera que sea a donde redirecciones, ejemplo no se como sea en CI pero que tu le digas algo como esto
Código PHP:
Ver original
  1. if ($CI->session->userdata('logged_in') != TRUE) {
  2.         $CI->session->set('urlavolver', 'http://urlactual'); //esto no se si sea un método en CI lo que quiero decir es que se cree una variable de sesión con el key "urlavolver"
  3.         redirect(base_url() . 'index.php/Login', 'location');
  4. }
de manera que una vez que hagas el login en el controlador hagas el redirec a
Código PHP:
Ver original
  1. redirect(base_url() . $CI->session->get('urlavolver')/*tampoco se si es un Metodo en CI es como decir que recoja el valor de la key de la variable de session 'urlavolver'*/, 'location');
es solo una indicación (verifica lo que esta en los comentarios en el código), porque la verdad no tengo ni idea de como trabaja las sessiones CI, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 28/04/2012, 14:54
 
Fecha de Ingreso: julio-2010
Mensajes: 45
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Problema con login de usuarios

Muchas gracias por su respuesta le entiendo la idea pero el problema para aplicar lo que uds me indica es que llego a este medodo redirigido de la pagina que no cumplia con la condicion de sesion iniciada es decir no podria trabajar con la direccion actual sino con la direccion anterior y no se como acceder a esta url anterior he visto que usan $_SERVER['HTTP_REFERER'] pero creo que esto no es 100% seguro y por ejemplo cando lo quise usar en codeigniter me salia indice no definido que alternativa tendria ante esto?
  #4 (permalink)  
Antiguo 28/04/2012, 15:09
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con login de usuarios

no es muy ortodoxo pero puedes envíarlo por un campo hidden, pero veamos si alguien con mas experiencia en el framework te indica si tiene algún método mejor, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

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 06:41.