Foros del Web » Programando para Internet » PHP »

usuarios con permisos

Estas en el tema de usuarios con permisos en el foro de PHP en Foros del Web. Hola amigos, espero que se encuentren muy bien. Tengo un problemilla con un proyecto. Tengo un sistema de usuarios implementado recientemente, o sea, tengo mi ...
  #1 (permalink)  
Antiguo 31/08/2008, 10:41
Avatar de Masticore  
Fecha de Ingreso: agosto-2008
Mensajes: 52
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación usuarios con permisos

Hola amigos, espero que se encuentren muy bien. Tengo un problemilla con un proyecto. Tengo un sistema de usuarios implementado recientemente, o sea, tengo mi formulario creado que dice por ejemplo
Usuario:
Pass:
Nombre:
E-Mail:
Nivel de Acceso:

estos datos si yo los ingreso, se ingresa a mi tabla de la base de datos (en MySQL), ok todo bien hasta aka. Mi duda es:

Como puedo hacer que el usuario que se logee y sea de nivel 4 por ejemplo vea por ejemplo una pagina llamada menunivel4.php, el que tenga nivel 2 se loguee y vea la pag menunivel2.php. y asi sucesivamente. Son 5 niveles.

Alguna ayuda,... es casi de manera urgente...

MUCHAS GRACIAS!!!!!!!!

Última edición por GatorV; 31/08/2008 a las 20:42
  #2 (permalink)  
Antiguo 31/08/2008, 10:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

Es fácil. Si el usuario se ha logueado y tú ya has comprobado que la contraseña es correcta, sólo te falta hacer un SELECT * a la tabla (digo * por recoger todos los datos, pero como tú quieras), meterlos en un array ($user = mysql_fetch_array() después de la consulta) y haces una condicional facilita:
if($user['level'] == 4) include('menunivel4.php');
O si lo prefieres, algo más organizado (aunque da menor rendimiento):
switch($user['level']) {
case 1:
include('menunivel1.php');
break;
case 2:
include('menunivel2.php');
break;
case ...
}
Pongo include(), pero podrías usar header() o lo que te plazca, eso ya depende de tu aplicación.
  #3 (permalink)  
Antiguo 31/08/2008, 11:12
Avatar de Masticore  
Fecha de Ingreso: agosto-2008
Mensajes: 52
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

Cita:
Iniciado por outime Ver Mensaje
Es fácil. Si el usuario se ha logueado y tú ya has comprobado que la contraseña es correcta, sólo te falta hacer un SELECT * a la tabla (digo * por recoger todos los datos, pero como tú quieras), meterlos en un array ($user = mysql_fetch_array() después de la consulta) y haces una condicional facilita:
if($user['level'] == 4) include('menunivel4.php');
O si lo prefieres, algo más organizado (aunque da menor rendimiento):
switch($user['level']) {
case 1:
include('menunivel1.php');
break;
case 2:
include('menunivel2.php');
break;
case ...
}
Pongo include(), pero podrías usar header() o lo que te plazca, eso ya depende de tu aplicación.

Outime... primero que nada muchas gracias por responder. Y entiendo, lo que me planteas pero me queda una duda como agrego lo del SELECT * y meterlos en un array $user = mysql_fetch_array() en esa parte me perdi. es que muy seco para PHP no soy la verdad, si, eh validado el user y pass y me manda a la pagina que yo quiero pero mi tabla se compone de user, pass, email, nivel (que esta en cuestion) y nombre y apellido.
como hago para que cuando el usuario juanito que tiene nivel 2 entre a menunivel2.php y lo otro es, ¿tengo que colocar una comprovacion en el header de menunivel2.php? digo para que el del nivel 4 por ejemplo no pueda acceder al nivel 2, por si acaso trabajo con cookies. si quieres te pego el codigo? por ultimo. Te puedo agregar a MSN?

Gracias nuevamente

Salud - os!

Última edición por Masticore; 31/08/2008 a las 12:19
  #4 (permalink)  
Antiguo 31/08/2008, 11:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

Desconozco la estructura de tu aplicación, pero con ello me refería a hacer:
$sql = "SELECT usuarios.* FROM usuarios WHERE ..."; (lo que utilices para identificar al usuario, cookie, etc)
$result = mysql_query($sql);
$user = mysql_fetch_array($result);
Con esto, $user se convierte en un array con todos los datos de tu tabla. Con ello, podemos enviarle a un lugar u otro. O si únicamente requieres el nivel (esto a nivel de rendimiento):
$sql = "SELECT usuarios.nivel FROM usuarios WHERE ...";
$result = mysql_query($sql);
$user = mysql_fetch_array($result);
Esa misma consulta la podemos utilizar en cada archivo para comprobar que el usuario tiene nivel, para permitirle utilizarlo o no. Espero que te haya quedado claro
  #5 (permalink)  
Antiguo 31/08/2008, 12:08
Avatar de Masticore  
Fecha de Ingreso: agosto-2008
Mensajes: 52
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

Cita:
Iniciado por outime Ver Mensaje
Desconozco la estructura de tu aplicación, pero con ello me refería a hacer:
$sql = "SELECT usuarios.* FROM usuarios WHERE ..."; (lo que utilices para identificar al usuario, cookie, etc)
$result = mysql_query($sql);
$user = mysql_fetch_array($result);
Con esto, $user se convierte en un array con todos los datos de tu tabla. Con ello, podemos enviarle a un lugar u otro. O si únicamente requieres el nivel (esto a nivel de rendimiento):
$sql = "SELECT usuarios.nivel FROM usuarios WHERE ...";
$result = mysql_query($sql);
$user = mysql_fetch_array($result);
Esa misma consulta la podemos utilizar en cada archivo para comprobar que el usuario tiene nivel, para permitirle utilizarlo o no. Espero que te haya quedado claro
Te has pasado. Ojalas que eso funcione. Si no te comento OUTIME. Y muchas gracias por toda tu ayuda brindada.. Te agrege a MSN.

Que hora es en españa???

Última edición por Masticore; 31/08/2008 a las 12:10 Razón: me equivoque en el nombre
  #6 (permalink)  
Antiguo 31/08/2008, 12:12
Avatar de Masticore  
Fecha de Ingreso: agosto-2008
Mensajes: 52
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

en todo caso Outime no deviera ir un if en el header.. por ejemplo
if nivel1 entonces muestre pagina menunivel1.php
if nivel2 entonces muestre pagina menunivel2.php, etc etc etc.

O me equivoco??? o sea no se como ingresar eso pero ... corrigeme si me equivoco


GRACIAS
  #7 (permalink)  
Antiguo 31/08/2008, 12:15
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

Puedes poner lo que quieras, te lo expliqué más arriba con if o con switch.

<offtopic>En #3 también pusiste mal mi nick </offtopic>
  #8 (permalink)  
Antiguo 31/08/2008, 12:19
Avatar de Masticore  
Fecha de Ingreso: agosto-2008
Mensajes: 52
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Urgente usuarios con permisos

Cita:
Iniciado por outime Ver Mensaje
Puedes poner lo que quieras, te lo expliqué más arriba con if o con switch.

<offtopic>En #3 también pusiste mal mi nick </offtopic>
Editado gran maestro. Le devo una. Provaré a ver que tal me resulta.
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 08:32.