Resultados 1 al 5 de 5

Tema: Duda son sesiones

  1. #1
    Usuario
    Avatar de El_Arturo
    Fecha de ingreso
    20 Jun, 06
    Mensajes
    182

    Duda son sesiones

    Hola gente...
    me gustaria saber como puedo ocultar o mostrar un menu dependiendo de la sesion que este iniciada... por ejemplo si es admin poder ver el menu admin, si es usuario normal solo ver el menu de usuario normal
    no se si me dia a enter bien... espero que si.

    Espero sus respuestas salu2!

  2. #2
    Aprendiz xD
    Avatar de kmpx
    Fecha de ingreso
    30 Dec, 09
    Ubicación
    Pet Sematary
    Mensajes
    137

    Re: Duda son sesiones

    crea archivos para cada usuario aunque sería medio mula la solución...Lo otro es que depende de el tipo de usuario dentro de tu script permitas visualizar ciertos contenidos..podrias usar un switch para ello según la opción que se escoja
    "HEY HO, LET'S GO!"

  3. #3
    Zend Certified Engineer
    Avatar de unreal4u
    Fecha de ingreso
    02 Oct, 05
    Ubicación
    Eindhoven, The Netherlands
    Mensajes
    12,125

    Re: Duda son sesiones

    lo más fácil y rápido es crear un campo que se llame id_grupo en la tabla de menú y seleccionas sólo aquellos que le son pertinentes.

    En SQL:
    Código:
    CREATE TABLE menu (
     id_menu int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
     texto varchar(255) NOT NULL,
     href varchar(255) NOT NULL,
     id_grupo int(11) NOT NULL DEFAULT 0,
     orden int(11)
    );
    
    CREATE TABLE usuarios_grupos (
     id_usuario int(11) NOT NULL,
     id_grupo int(11) NOT NULL,
     PRIMARY KEY(id_usuario,id_grupo)
    );
    de esa forma, un usuario puede pertenecer a varios grupos a la vez.

    Código PHP:
    if (empty($_SESSION['menu']) OR !is_array($_SESSION['menu'])) {
    // Primero deberás seleccionar todos los grupos a los cuales pertenece el usuario:
      
    $aGrupos $myLink->query('SELECT id_grupo FROM usuarios_grupos WHERE id_usuario = ?',$id_usuario);

      
    $where '('$i 0;
      foreach(
    $aGrupos AS $a) {
        if (
    $i != 0$where .= ' OR ';
        
    $where .= 'id_grupo = '.$a['id_grupo'];
        
    $i++;
      }
      
    $where .= ')';

      
    $aMenu $myLink->query('SELECT texto,href FROM menu WHERE '.$where.' ORDER BY orden');
    // luego:
      
    $_SESSION['menu'] = $aMenu;
      unset(
    $aMenu,$where,$aGrupos,$a);

    Y listo.
    Las consultas a la db las hice con mi class:
    Extended MySQLi - PHP Classes

    Saludos.
    Lee Nuestra FAQ, los famosos 14 mandamientos de CHW.
    El Reglamento de Compra-Venta, Nuestra Visión y por último, Nuestra Historia


    Futurama & The IT Crowd fanboy
    Frase célebre: "Debido a la gran cantidad de guiños y referencias relacionadas con el mundo informático, esta sección permanecerá siempre incompleta, al menos hasta que se complete"
    Para el bronce: Oh, i'm very confortable with my sexuality, i just don't want to be slapped in the face with THEIR sexuality

    Mi blog | Mi Twitter | Zend Certified Engineer

  4. #4
    From Conce with love
    Avatar de Vip3R™
    Fecha de ingreso
    08 Jun, 09
    Ubicación
    Concepción
    Mensajes
    710

    Re: Duda son sesiones

    aprovechando este post y como unreal4u dio una buena respuesta quisiera colarme del tema, estoy trabjando con sessiones pero quiero mantener una sesion abierta, por ejemplo como en los foros y la tipica opcion recordarme que mantiene el login del usuario, he probado con cookies pero la custion muere igual alguna ayudita please. muchas gracias

    pd: se me olvidaba, no tengo problemas entre paginas, ie, el session_start() y esas cosas

  5. #5
    Zend Certified Engineer
    Avatar de unreal4u
    Fecha de ingreso
    02 Oct, 05
    Ubicación
    Eindhoven, The Netherlands
    Mensajes
    12,125

    Re: Duda son sesiones

    Cita Iniciado por Vip3R™ Ver mensaje
    aprovechando este post y como unreal4u dio una buena respuesta quisiera colarme del tema, estoy trabjando con sessiones pero quiero mantener una sesion abierta, por ejemplo como en los foros y la tipica opcion recordarme que mantiene el login del usuario, he probado con cookies pero la custion muere igual alguna ayudita please. muchas gracias

    pd: se me olvidaba, no tengo problemas entre paginas, ie, el session_start() y esas cosas
    tienes que establecer manualmente el timeout de la cookie, de lo contrario, el navegador entiende que debe borrarla (o dejarla sin efecto) una vez que se cierra el navegador.

    PHP: setcookie - Manual

    No te olvides que el tiempo lo debes establecer en formato UNIX (AKA los segundos que han pasado desde 1-1-1970 + los segundos adicionales), es decir, si quieres que la cookie venza de aquí al otro año el timeout sería:

    Código PHP:
    mktime(0,0,0,strftime('%m'),strftime('%d'),strftime('%Y') + 1); 
    mktime es hora, min, seg, mes, dia, año.

    Dentro de la cookie lo más seguro es tener un hash y a la vez debes mantener en la db ese mismo hash y de esa forma podrás recrear de forma segura la sesión sin tener que guardar en la cookie el user y pass del usuario. Es un poco complicado de describir, pero una vez que lo tienes hecho es resimple

    Saludos.
    Lee Nuestra FAQ, los famosos 14 mandamientos de CHW.
    El Reglamento de Compra-Venta, Nuestra Visión y por último, Nuestra Historia


    Futurama & The IT Crowd fanboy
    Frase célebre: "Debido a la gran cantidad de guiños y referencias relacionadas con el mundo informático, esta sección permanecerá siempre incompleta, al menos hasta que se complete"
    Para el bronce: Oh, i'm very confortable with my sexuality, i just don't want to be slapped in the face with THEIR sexuality

    Mi blog | Mi Twitter | Zend Certified Engineer

Temas similares

  1. Sesiones
    Por Azeeta en el foro Race Driver GRiD - CHW Team
    Respuestas: 8
    Último mensaje: 17/10/2010, 22:38
  2. Mis Sesiones ...
    Por t.p_override en el foro Fotografía
    Respuestas: 3
    Último mensaje: 02/11/2009, 16:14
  3. Duda sobre seguridad de sesiones en php
    Por samurai1993 en el foro Webmasters
    Respuestas: 5
    Último mensaje: 21/09/2009, 20:50
  4. VTR y sesiones BGP
    Por mobilexpi en el foro Internet y Redes
    Respuestas: 2
    Último mensaje: 06/09/2008, 22:25
  5. Uso de Sesiones en Windows 98 SE
    Por BiChO en el foro Windows y programas varios
    Respuestas: 1
    Último mensaje: 07/06/2005, 22:25

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
*