entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Control de Usuarios

Hola Feliz Año primero que todo

Bueno pasa lo siguiente tengo 2 tipos de rol usuario y el administrador cada uno tiene su carpeta tengo un proyecto ya creado y funcionando

pero tengo un problema al iniciar sesion digamos con usuario y escribir por ejemplo direccion/admin entra sin problemas o si entro con admin y tecleo direccion/usuario pasa lo mismo

tengo lo siguiente para intentar controlar eso

<php
if(isset($_SESSION['usuario'])){
    if($_SESSION['usuario']['perfil'] != "administrador"){
        header("Location: ../usuario/");
    }
}
?>

como dice hay si es diferente a administrador que lo devuelva a usuario pero no funciona
ahora si agrego un session_start();

<php
session_start();
if(isset($_SESSION['usuario'])){
    if($_SESSION['usuario']['perfil'] != "administrador"){
        header("Location: ../usuario/");
    }
}
?>

me dice lo siguiente session_start ya fue iniciada y sera omitida igual no lo devuelve al directorio que corresponde
bueno l odel session_start ya fue iniciada creo que es porque tengo un session_start en el login supongo que hace referencia a eso

2 Respuestas

1voto

carlossevi Puntos63540

Te recomiendo hacer el control al revés: considerar usuario raso (devolver o redireccionar) a no ser que se demuestre lo contrario.

En el primer ejemplo, si no está establecido el usuario de la sesión (línea isset($_SESSION['usuario'])) por cualquier error de programación, no debes considerar que por omisión sí que es administrador. Deberías considerar que no puede estar conectado.

En cuanto al error que tienes, parece que no estás estableciendo correctamente el valor de $_SESSION['usuario'] y por eso no llegas a validar.

Yo lo abordaría:

  1. Cambiar el sentido del control, rechazar por omisión. Con eso tu aplicación, que tiene un error, pasará a no autenticar nunca, pero eso siempre es mejor que autenticar siempre =)

  2. Arreglar el problema que hace que no esté autenticando.

0voto

Umarumm Puntos1640

Me Auto Respondo al parecer no funciona porque al incluir un index en los archivos y el index tener tambien un session_start marcaba que ya habia una sesion iniciada y por ese motivo no funciona (los index solo tiene un menu de navegacion) bueno quite los session_start y ya por ejemplo si entra un usuario y pone ruta/admin/archivo.php lo devuelve a su carpeta de usuario por ese lado todo bien .

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta