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
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!
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!"


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:
de esa forma, un usuario puede pertenecer a varios grupos a la vez.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) );
Y listo.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);
}
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
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:
mktime es hora, min, seg, mes, dia, año.Código PHP:mktime(0,0,0,strftime('%m'),strftime('%d'),strftime('%Y') + 1);
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