Foros del Web » Programando para Internet » PHP »

Problema con roles de usuario

Estas en el tema de Problema con roles de usuario en el foro de PHP en Foros del Web. Hola amigos desarrolladores, Tengo el siguiente problema. Estoy programando una aplicación que cuenta con 4 niveles de participación de usuarios; conserje, administrador, comité y habitante, ...
  #1 (permalink)  
Antiguo 04/04/2016, 12:46
Avatar de nuckzuniga  
Fecha de Ingreso: marzo-2008
Mensajes: 71
Antigüedad: 11 años, 4 meses
Puntos: 0
Problema con roles de usuario

Hola amigos desarrolladores,

Tengo el siguiente problema. Estoy programando una aplicación que cuenta con 4 niveles de participación de usuarios; conserje, administrador, comité y habitante, entonces para definir a que area puede entrar (index_conserje.php, index_comite.php, etc), puse una columna "permisos" en la BD, y dependiendo del número, del 1 al 4, que queda almacenado en una variable de sesión, redirige al usuario a donde debe ir. El problema es que si vuelvo al index.php, me redirige al index correspondiente automáticamente, no obstante cuando trato de ingresar a un index_ que requiera permisos superiores, no me redirige de vuelta.

Este es el código que estoy incluyendo en todos los index:

Código PHP:
<?php
include_once("./includes/arriba.php"); //Archivo con copyrights y un par de cositas mas, no envia cabeceras.
include_once './includes/db_connect.php'//Conexión a BD para mysqli
include_once './includes/functions.php'//Funciones de seguridad para el login.
 
sec_session_start();
if(
login_check($mysqli) == true) {
    include_once 
'./includes/sin_permiso.php'//Archivo con las redireciones a los sitios que le corresponden.
    
?>
Y el contenido del archivo que debería redirigir es:

Código PHP:
<?
if($_SESSION['permisos']==1){header ("Location: ../ingreso_admin.php");} //ADMIN
    
if($_SESSION['permisos']==2){header ("Location: ../ingreso_comite.php");} //COMITE
    
if($_SESSION['permisos']==3){header ("Location: ../ingreso_coprop.php");} //COPROPIETARIO
    
if($_SESSION['permisos']==4){header ("Location: ../ingreso_conserje.php");} //CONSERJE
    
?>
Ya probé revisando si las variables realmente almacenaban el valor, pero aún sigue sin funcionar.

Saludos!!!
  #2 (permalink)  
Antiguo 04/04/2016, 13:15
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 3 años, 7 meses
Puntos: 39
Respuesta: Problema con roles de usuario

Si imprimes $_SESSION['permisos'] qué valor recibes?

prueba encerrando los valores en comillas, =="1" por ejemplo.
Prueba también englobando if.

Código PHP:
Ver original
  1. <?
  2. if($_SESSION['permisos']==1){header ("Location: ../ingreso_admin.php");} //ADMIN
  3.     else if($_SESSION['permisos']==2){header ("Location: ../ingreso_comite.php");} //COMITE
  4.     else if($_SESSION['permisos']==3){header ("Location: ../ingreso_coprop.php");} //COPROPIETARIO
  5.     else if($_SESSION['permisos']==4){header ("Location: ../ingreso_conserje.php");} //CONSERJE
  6. else{ echo "No hay condicionales, el valor de la sesion es" . $_SESSION['permisos'];  }
  7.     ?>

No veo errores por ningún lado :S
  #3 (permalink)  
Antiguo 04/04/2016, 13:28
Avatar de nuckzuniga  
Fecha de Ingreso: marzo-2008
Mensajes: 71
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problema con roles de usuario

Si imprimo el valor de la sesión me da el valor que le asigno a la variable cuando hace login.

Etiquetas: mysql, roles, sql, usuario, usuarios, variable
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:14.