Foros del Web » Programando para Internet » PHP »

Codigo Restringir pagina

Estas en el tema de Codigo Restringir pagina en el foro de PHP en Foros del Web. Buen dia a todos, saben que tengo un pequeño problema, tengo que bloquear el acceso a algunos usuarios. Al abrir la sesion puse el nombre ...
  #1 (permalink)  
Antiguo 26/10/2006, 08:44
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Codigo Restringir pagina

Buen dia a todos, saben que tengo un pequeño problema, tengo que bloquear el acceso a algunos usuarios. Al abrir la sesion puse el nombre arriba del usuarios en cada pagina que entra, ahora quiero que dependiendo de esa sesion algunos usuarios rentringirle al acceso a algunas paginas. No tengo ningun tipo de codigo, si alguien de los que siempre me han ayudado como Cluster, ErickFrancisco o javier, me puedan ayudar nuevamente con este sistema que estoy creando, que si no es por uds no tendria nada...
  #2 (permalink)  
Antiguo 26/10/2006, 09:33
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
Yo en tu caso lo que haria es asignarle permisos a los usuarios, entonces cuando verfiques al usuario y su contraseña ,y sea "positiva", levantes una session con el tipo de permiso del usuario. De esta forma cuando quieran ingresar alguna página verificas si tiene el permiso para entrar "ahi".

Saludillos.
  #3 (permalink)  
Antiguo 26/10/2006, 09:44
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Asignas un numero o palabra especial a tu usuario.
ejemplo:

jose=100 o en su defecto 'usuario'
pepe=200 o 'administrador'
etc.

Cuando el usuario inicie sesión pones
$_SESSION['tipo_usuario']=100

y después en cada pagina pones
Código PHP:
session_start()
if(
$_SESSION['tipo_usuario']=100)//o if($_SESSION['tipo_usuario']='usuario')
  
{
      
//...tu código
  
}
else
  {
       
//usuario no permitdo
   

saludos.
ojala t sirva o ya de perdido t d una idea.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 26/10/2006, 09:46
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Gracias, muchas gracias, eso necesitaba
  #5 (permalink)  
Antiguo 26/10/2006, 09:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Al abrir la sesion puse el nombre arriba del usuarios en cada pagina que entra,
Pero si dices eso .. se "entiende" que algún tipo de código ya manejas .. alguna gestión de usuarios usas (valga la rebundancia).

No sé como creas tus variables de sesión o como gestionas los datos de tu usuario, pero .. tendrás que manejar un dato nuevo: "Nivel de acceso" .. o algo así para determina que nivel de acceso tiene cada usuario, ese dato lo obtienes cuando hagas tu "login" y generas una variable más de sesión con ese dato del "nivel del usuario". En tus páginas o procesos .. sólo valida ese dato con lo que tu necesites (un "IF()" simple).


Un saludo,

PD: Así funciona mi script "Autentificator": http://php.cluster-web./autentificator
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 26/10/2006, 11:48
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
tengo esto y me da error

<?
session_start();
echo $_SESSION['usuario'];
if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){
header("location: noautirizado.php");
if($_SESSION['usuario']=0)
{
else
{
header("location: noautirizado.php"); //usuario no permitdo
}
?>

Cree en la base de datos un campo q se llama nivel de acceso, y quiero q el nivel 0, sea el administrador y el nivel 1 los usuarios q esten restringidos.
  #7 (permalink)  
Antiguo 26/10/2006, 11:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por hulray Ver Mensaje
tengo esto y me da error

<?
session_start();
echo $_SESSION['usuario'];
if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){
header("location: noautirizado.php");
if($_SESSION['usuario']=0)
{
else
{
header("location: noautirizado.php"); //usuario no permitdo
}
?>

Cree en la base de datos un campo q se llama nivel de acceso, y quiero q el nivel 0, sea el administrador y el nivel 1 los usuarios q esten restringidos.
Bueno .. y en tu script o parte que haces el "login" .. donde obtienes ese dato y generas la variable de sesión para que propague ese dato del "nivel de acceso" al igual que esa que ya manejas del "usuario" que supongo que dará el valor del nombre del usario o ID activo?

Por otro lado .. no puedes hacer un "echo" y luego un header() ... No entiendo tu "iF()" que compones ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 26/10/2006, 12:04
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
mira ese es mi codigo y me funciona muy bien:

<?
session_start();
echo $_SESSION['usuario'];
if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){
header("location: noautirizado.php");
}
?>

ese echo es para q salga el nombre del usuario q se logeo en la pagina, y ese if es si intentan entrar sin haberse logeado, lo mando a una pagina que le dice q no tiene acceso por no logearse, es como de seguridad ese if y el header.

lo que intento es ponerle o donde ponerle el nivel de acceso a ese codigo.

no se si me podrias ayudar
  #9 (permalink)  
Antiguo 26/10/2006, 13:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por hulray Ver Mensaje
mira ese es mi codigo y me funciona muy bien:

<?
session_start();
echo $_SESSION['usuario'];
if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){
header("location: noautirizado.php");
}
?>

ese echo es para q salga el nombre del usuario q se logeo en la pagina, y ese if es si intentan entrar sin haberse logeado, lo mando a una pagina que le dice q no tiene acceso por no logearse, es como de seguridad ese if y el header.

lo que intento es ponerle o donde ponerle el nivel de acceso a ese codigo.

no se si me podrias ayudar
Ya te dije antes .. DONDE!!!! haces tu login? .. donde creas o le das el valor a tu variable de sesión $_SESSION['usuario']?

ESSSS en ese código donde -debes- crear tu variable de sesión $_SESSION['usuario_nivel'] .. y el valor que le daras será el que en tu campo de "nivel" de acceso del usuario creastes para el usuario en tu BBDD y que tendrás que obtener en tu consulta SQL que obtienes otros detalles del usuario.

(Esto mismo ya te lo he dicho antes .. no entendistes? .. por qué repites lo mismo? .. yo te pido algunas cosas y no me contestas .. así no avanzamos nada sobre el problema).

if(empty($_SESSION['usuario']) || $_SESSION['usuario']==""){

eso no tiene sentido!!. decir "si está vacia con empyt() y luego comparar contra == "") .. sólo usa:

if(empty($_SESSION['usuario'])){

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 26/10/2006, 13:33
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Uff se me enojo el master :(
  #11 (permalink)  
Antiguo 26/10/2006, 13:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por hulray Ver Mensaje
Uff se me enojo el master :(
No me enojo ... Sólo digo las cosas como són y como las siento.

Pero es que a veces pido "cosas" para completar posible solución al problema y parece que no se me "lee" por qué se insiste en lo mismo una y otra vez .. (como es tu caso que repites siempre la misma porción de código). Yo prefiero que me digan "no entendí a que te refires" (por qué no todos entendemos lo que uno intenta expresar) .. que se omita el tema por completo y se continue con lo mismo.

Si expones el código que te pido, que lo debes tener .. por qué el valor de $_SESSION['usuario'] no se creará por arte de mágia supongo .. ahí veras que solventamos el problema rápido y bien.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 26/10/2006, 14:34
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
ese es mi codigo del login, y disculpar la torpeza:

session_start();
session_unset();
session_destroy();

if($_POST){
$nick = $_POST['nick'];
$pass = md5($_POST['pass']);
unset($_POST);
if(eregi("^[-_A-Z0-9]{3,20}$",$nick)){

include("conexion.php");
LIMIT 1
$resp = mysql_query("SELECT id_usuario,nick,pass,intentos FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion);
if(mysql_num_rows($resp) == 1){
$row = mysql_fetch_assoc($resp);
if($row['intentos'] < 5){
if($pass == $row['pass']){
session_start();
$_SESSION['id_usuario'] = $row['id_usuario'];
$_SESSION['usuario'] = $row['nick'];
$fecha = time();
$ip = "xxx.xxx.xxx.xxx";
mysql_query("UPDATE usuarios SET uconexion_fecha='$fecha', uconexion_ip='$ip' , conexiones=conexiones+1, intentos=0 WHERE id_usuario='$row[id_usuario]' LIMIT 1",$conexion);
header("Location: /team/multiUserLog-In/welcome.php");

} else {

mysql_query("UPDATE usuarios SET intentos=intentos+1 WHERE id_usuario='$row[id_usuario]' LIMIT 1",$conexion);

echo "Contraseña incorrecta.";
}
} else { echo "Cuenta bloqueada ..."; }
} else { echo "No existe tal usuario."; }
} else { echo "nick no valido"; }
} else { header("Location: ../index.php"); }

?>
  #13 (permalink)  
Antiguo 26/10/2006, 15:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Fijate .. aquí .. generas tus variables de sesión actual:

session_start();
$_SESSION['id_usuario'] = $row['id_usuario'];
$_SESSION['usuario'] = $row['nick'];

Ya te comenté una vez más que tienes que crear un campo nuevo en tu tabla de "usuarios" para indicar el "nivel" del usuario en tu sistema.

Una vez que lo tengas creado y dado un valor a tus usuarios creados .. tan sólo debes añadir otra asignación .. crear otra variable de sesión más para "saber" en todas las páginas que el usuario navegue en tu aplicación que "nivel" de usuario tiene:

session_start();
$_SESSION['id_usuario'] = $row['id_usuario'];
$_SESSION['usuario'] = $row['nick'];
$_SESSION['usuario_nivel'] = $row['nivel'];

Y listo ... ahora sólo tienes que aplicar otro "IF" en tus páginas que desees restringir por nivel ..

por ejemplo .. restringir una página sólo a usuarios con nivel "1" (tus "Administradores" .. sólo tienes que componer tu IF condicional como necesites):

Código PHP:
<?
session_start
();
echo 
$_SESSION['usuario'];
if(empty(
$_SESSION['usuario']) {
  
header("location: noautirizado.php");
  exit;
}

if (
$_SESSION['nivel'] != "1"){
  
header("location: noautirizado_nivel.php");
  exit;
}

?>
Realmente esta validación la puedes hacer como quieras .. es una simple variable ya a ese punto y un simple "IF" .. aplicalo como necesites.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 27/10/2006, 07:38
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Todo bien hasta que llega a header("location: noautorizado_nivel.php");
Código PHP:
 <? 
session_start
(); 
echo 
$_SESSION['usuario']; 
if(empty(
$_SESSION['usuario'])) { 
  
header("location: noautorizado.php"); 
  exit; 


if (
$_SESSION['nivel'] != "1"){ 
  
header("location: noautorizado_nivel.php"); 
  exit; 


?>
tengo creada el acceso nivel con el nombre "nivel" y no se porq me tira ese error

No descrimina si el usuario tiene nivel 0 o 1

Código PHP:
session_start(); /// Se inicia la session
                    
$_SESSION['id_usuario'] = $row['id_usuario']; /// Variable de session que contiene la ID del usuario, ideal para autorizar a zonas restringidas
                    
$_SESSION['usuario'] = $row['nick']; /// Variable de session que contiene el nombre del usuario
                    
$_SESSION['usuario_nivel'] = $row['nivel']; 
  #15 (permalink)  
Antiguo 27/10/2006, 07:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
tengo creada el acceso nivel con el nombre "nivel" y no se porq me tira ese error
Pero tu estás seguro que la variable de sesión se crea y con el valor esperado? .. Lo has comprobado? ..

Por favor .. debes adjuntar TODO el dichoso código que vas modificando y como te va quedando. Visto que algunos conceptos no los aplicas correctamente es necesario constantemente ir revisandolos .. lo que tu omites .. por ahí tienes el problema (la mayoría de casos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 27/10/2006, 07:59
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Código PHP:
session_start(); // Se destruye cualquier
session_unset(); // session anterior antes de
session_destroy(); // comenzar con el scrip. Esto es opcional

if($_POST){ /// Se comrpueba si $_POST tiene algun valor
    /// Valores enviados por POST ///////////////////////////////////////
    
$nick $_POST['nick']; // pasamos $_POST['nick'] a $nick
    
$pass md5($_POST['pass']); // pasamos $_POST['pass'] a $pass codificado en MD5 que es como estan guardadas la pass en la BD. 
    /////////////////////////////////////////////////////////////////////
    
unset($_POST); /// Se destruye el array $_POST que ya no lo necesitamos
    /////////////////////////////////////////////////////////////////////
    
if(eregi("^[-_A-Z0-9]{3,20}$",$nick)){ // Se comprueba si el nick es valido. ( Valido: entre 3 y 20 caracteres que sean '-', '_', de la 'A' a la 'Z' y 0 al 9 )
        /// SQL ////////////////////////////////////////////////////////////////////    
        
include("conexion.php"); // Conexion a la BD.
        /// Buscamos el registro en la BD que conincida con $nick. Solo buscamos un registro, por eso LIMIT 1
        
$resp mysql_query("SELECT id_usuario,nick,pass,intentos,usuario_nivel FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion);
        
////////////////////////////////////////////////////////////////////////////
        
if(mysql_num_rows($resp) == 1){ /// Se comprueba si dio un resultado
            /// Si da un resultado es que existe tal usuario ...
            
$row mysql_fetch_assoc($resp); /// ... guardamos los valores del registro en la variable $row
            
if($row['intentos'] < 5){ /// Ahora comprobamos si tiene menos de 5 intentos fallidos de conexion.
                /// En el caso de tener menos de 5 intentos, se comprueba si la contraseña es correcta
                
if($pass == $row['pass']){
                    
/// Si la contraseña es correcta ...
                    
session_start(); /// Se inicia la session
                    
$_SESSION['id_usuario'] = $row['id_usuario']; /// Variable de session que contiene la ID del usuario, ideal para autorizar a zonas restringidas
                    
$_SESSION['usuario'] = $row['nick']; /// Variable de session que contiene el nombre del usuario
                    
$_SESSION['usuario_nivel'] = $row['nivel'];
                    
                    
/// Ahora actualizamos el registro del usuario, con la fecha de la ultima conexion y la ultima ip,
                    /// ademas sumamos en +1 las conexiones que lleva el usuario en total desde su resgitro y ponemos los intentos fallidos a 0
                    
$fecha time(); // fecha en formato timestamp.
                    
$ip "xxx.xxx.xxx.xxx"/// Ip del usuario, esto en si no vale de nada es un hueco para poner
                                             /// una funcion que obtenga la ip mas adelante cuando haga la funcion, pero mientras tengo que usar un IP
                    /// SQL ///////////////////////////////////////////////////////////
                    
mysql_query("UPDATE usuarios SET uconexion_fecha='$fecha', uconexion_ip='$ip' , conexiones=conexiones+1, intentos=0 WHERE id_usuario='$row[id_usuario]' LIMIT 1",$conexion);
                    
///////////////////////////////////////////////////////////////////
                    
header("Location: /team/multiUserLog-In/welcome.php"); /// una vez logueado redirigimos al usuario al index de la pagina o a su panel de control.
                
                
} else {
                    
/// Si la contraseña es incorrecta le sumamamos a los intentos +1 
                    /// SQL ///////////////////////////////////////////////////////////
                    
mysql_query("UPDATE usuarios SET intentos=intentos+1 WHERE id_usuario='$row[id_usuario]' LIMIT 1",$conexion);
                    
///////////////////////////////////////////////////////////////////
                    
echo "Contraseña incorrecta.";
                }
            } else { echo 
"Cuenta bloqueada ..."; } /// Salida para cuando supere los intentos de conexion fallidos
        
} else { echo "No existe tal usuario."; } /// Salida para cuendo no encuentre ningun usuario en la bd con el $nick enviado
    
} else { echo "nick no valido"; } /// Salida para cuendo el nick introducido en el formulario no sea valido
} else { header("Location: ../index.php"); } /// Salida para cuando no se envie nada por $_POST, osea que se acceda al script directamente sin usar el formulario.  


?> 
NOTA: SIN ENOJARSE
  #17 (permalink)  
Antiguo 27/10/2006, 08:22
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
De acuerdo

Observando tu código:

Código PHP:
 $_SESSION['usuario_nivel'] = $row['nivel']; 
// no tendria que ser
 
$_SESSION['usuario_nivel'] = $row['usuario_nivel']; 
//lo dijo por los datos que tienes en tu query 
y has un echo""; de esa sesion para checar que realmente se esta asignando el valor.

Código PHP:
echo  $_SESSION['usuario_nivel']; 
Saludillos.
  #18 (permalink)  
Antiguo 27/10/2006, 08:28
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Buena idea... Haber que pasa
  #19 (permalink)  
Antiguo 27/10/2006, 08:38
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
Te pido de favor que realizes los cambios, y nos comentes como te fue. Porque como estas asignado el valor a $_SESSION['nivel'] es incorrecto debido en que tu query tienes lo siguiente "SELECT id_usuario,nick,pass,intentos,usuario_nivel FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion);

Y la session la estas declarando $_SESSION['nivel'] = $row['nivel'];
el campo nivel no existe en tu tabla.

Saludillos.
  #20 (permalink)  
Antiguo 27/10/2006, 09:14
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Código PHP:
<?  
session_start
();  
echo 
$_SESSION['usuario'];  
if(empty(
$_SESSION['usuario'])) {  
  
header("location: noautorizado.php");  
  exit;
}  

if (
$_SESSION['usuario_nivel'] != "100"){  
  
header("location: noautorizado_nivel.php");  
  exit;  
}  

?>
Ya, ahora el problema es que me quedo todo alreves, cuando dijita 100, entra y cuando es otro valor se bloquea
  #21 (permalink)  
Antiguo 27/10/2006, 09:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por mauled Ver Mensaje
Te pido de favor que realizes los cambios, y nos comentes como te fue. Porque como estas asignado el valor a $_SESSION['nivel'] es incorrecto debido en que tu query tienes lo siguiente "SELECT id_usuario,nick,pass,intentos,usuario_nivel FROM usuarios WHERE nick='$nick' LIMIT 1",$conexion);

Y la session la estas declarando $_SESSION['nivel'] = $row['nivel'];
el campo nivel no existe en tu tabla.

Saludillos.
Así es .. en tu tabla haces referencia al campo de nombre "usuario_nivel" y luego obtienes "nivel" .. no corresponde.

(Te fijas lo IMPORTANTE que es colocar el código que te va quedando tras recibir los consejos que te damos y tu aplicas? .. Fueses más "metódico" en este aspecto hace días que tendrías resuelto tu problema).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 27/10/2006, 09:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por hulray Ver Mensaje
Código PHP:
<?  
session_start
();  
echo 
$_SESSION['usuario'];  
if(empty(
$_SESSION['usuario'])) {  
  
header("location: noautorizado.php");  
  exit;
}  

if (
$_SESSION['usuario_nivel'] != "100"){  
  
header("location: noautorizado_nivel.php");  
  exit;  
}  

?>
Ya, ahora el problema es que me quedo todo alreves, cuando dijita 100, entra y cuando es otro valor se bloquea
Y tu sabes que hace != ?

Si no lo sabes, es tu deber -preguntar- .. así aprenderas lo que te damos como ejemplos ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #23 (permalink)  
Antiguo 27/10/2006, 09:35
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Cita:
Iniciado por Cluster Ver Mensaje
Fijate .. aquí .. generas tus variables de sesión actual:

session_start();
$_SESSION['id_usuario'] = $row['id_usuario'];
$_SESSION['usuario'] = $row['nick'];

Ya te comenté una vez más que tienes que crear un campo nuevo en tu tabla de "usuarios" para indicar el "nivel" del usuario en tu sistema.

Una vez que lo tengas creado y dado un valor a tus usuarios creados .. tan sólo debes añadir otra asignación .. crear otra variable de sesión más para "saber" en todas las páginas que el usuario navegue en tu aplicación que "nivel" de usuario tiene:

session_start();
$_SESSION['id_usuario'] = $row['id_usuario'];
$_SESSION['usuario'] = $row['nick'];
$_SESSION['usuario_nivel'] = $row['nivel'];

Y listo ... ahora sólo tienes que aplicar otro "IF" en tus páginas que desees restringir por nivel ..

por ejemplo .. restringir una página sólo a usuarios con nivel "1" (tus "Administradores" .. sólo tienes que componer tu IF condicional como necesites):

Código PHP:
<?
session_start
();
echo 
$_SESSION['usuario'];
if(empty(
$_SESSION['usuario']) {
  
header("location: noautirizado.php");
  exit;
}

if (
$_SESSION['nivel'] != "1"){
  
header("location: noautirizado_nivel.php");
  exit;
}

?>
Realmente esta validación la puedes hacer como quieras .. es una simple variable ya a ese punto y un simple "IF" .. aplicalo como necesites.

Un saludo,
Cita:
Iniciado por Cluster Ver Mensaje
Así es .. en tu tabla haces referencia al campo de nombre "usuario_nivel" y luego obtienes "nivel" .. no corresponde.

(Te fijas lo IMPORTANTE que es colocar el código que te va quedando tras recibir los consejos que te damos y tu aplicas? .. Fueses más "metódico" en este aspecto hace días que tendrías resuelto tu problema).

Un saludo,
Ya lo soluciones Cluster, y ya habia cambiado ese parametro q me dijo mauled, te agradezco tu paciencia, ya que la estabas perdiendo, jaja.
  #24 (permalink)  
Antiguo 27/10/2006, 10:01
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
De acuerdo

Jejeje creo que si Cluster hubiera perdido aunque un sea poco la paciencia no te hubiera apoyado. Lo que es un poco frustante es que no realizaras los cambios que se te pedian. Toma en cuenta que todo lo que se te dijo fue, para que en un futuro se te pueda brindar una mejor solución y de esta manera ahorrarse tiempo.

Saludillos.
  #25 (permalink)  
Antiguo 27/10/2006, 10:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por mauled Ver Mensaje
Jejeje creo que si Cluster hubiera perdido aunque un sea poco la paciencia no te hubiera apoyado. Lo que es un poco frustante es que no realizaras los cambios que se te pedian. Toma en cuenta que todo lo que se te dijo fue, para que en un futuro se te pueda brindar una mejor solución y de esta manera ahorrarse tiempo.

Saludillos.
Por el tema "paciencia" no se preocupen .. tengo mucha .. sino no estaría aquí con mis 33K mensajes o más a la fecha ..

Lo que si que veo mucho es que hay muchooooos problemas que se podrían resolver "de una patada" al instante casi si quien pregunta aportase todos los datos necesarios de su problema o .. si se le pieden algunos que faltaban .. los aportase completos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #26 (permalink)  
Antiguo 27/10/2006, 12:33
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 18 años, 2 meses
Puntos: 3
Buena en este momento estoy como novatin, pero mas adelante todos los novatos que ayudas te haran el trabajo mas facil ya que podran ayudarte a responder problemas con el tiempo...
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 21:35.