Foros del Web » Programando para Internet » PHP »

condicional segun logeo del usuario

Estas en el tema de condicional segun logeo del usuario en el foro de PHP en Foros del Web. segun el usuario que se logea si es administrador,coordinador,tutor ó agente pero tengo una duda cuando adm y coor por ejemplo tienen acceso al mismo ...
  #1 (permalink)  
Antiguo 20/03/2012, 09:38
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
condicional segun logeo del usuario

segun el usuario que se logea si es administrador,coordinador,tutor ó agente
pero tengo una duda cuando adm y coor por ejemplo tienen acceso al mismo archivo como controlo eso, otra cuando tienen acceso al mismo archivo php pero no algunas opciones del mismo.

Código Javascript:
Ver original
  1. <tr>
  2.      <td colspan="2"><ul>
  3.        <?php if($_SESSION['adm'] == 1){?>
  4.        <li><a href="gestion_usuario.php" target="_self">Gestión Usuarios</a></li>
  5.        <li><a href="gestion_curso.php" target="_self">Gestión Cursos</a></li>      
  6.        <?php } ?>
  7.        <li><a href="resultados_curso.php" target="_self">Alumnos Inscritos por Curso</a></li>
  8.        <li><a href="resultados_servicio.php" target="_self">Alumnos Inscritos y su Estado por Servicio de Salud</a></li>
  9.        <li><a href="inscripcion_tutores.php" target="_self">Inscripci&oacute;n de Tutores</a></li>
  10.        <li><a href="resultados_tutores.php">Tutores Inscritos por Servicio de Salud</a></li>
  11.        <li><a href="busqueda_usuario.php" target="_self">Busqueda de Usuario en Historico</a></li>
  12.        <li><a href="busqueda_tutor.php" target="_self">Busqueda de Tutores en Historico</a></li>
  13.         <?php if($_SESSION['key_tipouser'] == 1){?>
  14.        <li><a href="seguimiento_coord.php" target="_self">Registro de Actividades de Coordinadores</a></li>
  15.        <li><a href="indicadores_servicio.php" target="_self">Indicadores por Registro de Salud</a></li>
  16.        <?php } ?>
  17.      </ul></td>
  18. </tr>
  #2 (permalink)  
Antiguo 20/03/2012, 09:57
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: condicional segun logeo del usuario

Deberías guardar el tipo de usuario en una variable de sesión, en tu código veo $_SESSION['admin'] pero esto no funciona, ya que solo valida si es administrador o no (claro, según la lógica que puedo ver en tu código, mas no se realmente el valor de dicha variable), lo mejor seria algo así...

Código PHP:
Ver original
  1. <?php //inicio del archivo
  2.  
  3. if (isset($_SESSION['userType']) && $_SESSION['userType'] == 'admin' && $_SESSION['userType'] == 'coor') {
  4.  
  5. echo 'Usuario valido';
  6. }else {
  7. echo 'Usuario invalido!';
  8. }

O mejor aun, podrías crear una función que valide los datos, solo le pasas el tipo de usuario que quieres que tenga acceso...

Código PHP:
Ver original
  1. <?php
  2.  
  3. function validarUsuario($usuarios) {
  4.     $isValid = false;
  5.     if (!is_array($usuarios)) {
  6.         if (isset($_SESSION['userType']) && $_SESSION['userType'] == $usuarios) {
  7.             $isValid = true;
  8.         }
  9.     }else {
  10.         if (isset($_SESSION['userType'])) {
  11.             foreach($usuarios as $user) {
  12.                 if ($_SESSION['userType'] == $user) {
  13.                     $isValid = true;
  14.                 }
  15.             }
  16.         }
  17.     }
  18.    
  19.     return $isValid;
  20. }
  21.  
  22. /* Hay dos formas de usar la funcion anterior,
  23.  * una de ellas es pasar solo un usuario como
  24.  * un string: validarUsuario('admin'), la otra
  25.  * es pasarle un array con los usuarios validos:
  26.  *
  27.  * $usuarios = array('admin','coor','otro');
  28.  * validarUsuario($usuarios);
  29.  *
  30.  * En la variable $usuarios puedes agregar tantos
  31.  * usuarios quieras que tengan acceso al código
  32.  * dentro del if...
  33.  */
  34.  
  35. $usuarios = array('admin','coor');
  36.  
  37. if (validarUsuario($usuarios)) {
  38.     echo 'Usuario valido!';
  39. }else {
  40.     //Aquí puedes mostrar un error o reedireccionar
  41.     //mostrar error...
  42.     echo 'Usuario invalido o no inicio sesión!';
  43.     //redireccionar!
  44.     header('location: error.php');
  45.     //OJO, no debes hacer ningun echo o tener salida
  46.     //algúna (codigo HTML etc) antes del header!
  47. }

Nota: se me olvidaba, puedes también usar la función para bloquear el acceso a partes del código dentro del archivo siguiendo la lógica que te mostré en el ejemplo!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 20/03/2012, 09:59
 
Fecha de Ingreso: septiembre-2011
Mensajes: 106
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: condicional segun logeo del usuario

Porque usas secciones diferentes? te aconsejo que identifiques a los usuarios con números, ejemplo:
1 = admin
2 = mod
3 = miembro

el numero lo guardas en tu DB.
Luego el condicional que hiciste esta bien, ahora para que el usuario maneje ciertas cosas según su rango se hace de la misma forma.
Te aconsejo que leas mas sobre los condicionales elseif
  #4 (permalink)  
Antiguo 22/03/2012, 10:15
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: condicional segun logeo del usuario

gracias ILuzbel segui tu recomendacion y tambien use elseif{} y me funciona perfecto chevre

Etiquetas: condicional, logeo, registro, usuarios
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 20:02.