Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2009, 20:12
Avatar de Polu
Polu
 
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 3 meses
Puntos: 0
Aplicar nivel de acceso a una sesión

Hola,
Estoy intentando aplicarle a una sesión, niveles de acceso, lo he intentado de varias maneras pero, no me sale.
¿Alguien sabe que estoy haciendo mal?.

Este es el código en el que he creado la variable de la sesión nivel_acceso:

Código PHP:
<?php 
include 'dbc.php';

$user_email mysql_real_escape_string($_POST['email']);


if (
$_POST['Submit']=='Login')
{
$md5pass md5($_POST['pwd']);
// En tu consulta debes poner todos los campos que deseas mostrar: id,user_email,full_name,country etc.
$sql "SELECT id,user_email,full_name,country,nivel_acceso FROM users WHERE 
            user_email = '$user_email' AND 
            user_pwd = '$md5pass' AND user_activated='1'"

            
$result mysql_query($sql) or die (mysql_error()); 
$num mysql_num_rows($result);

    if ( 
$num != ) { 

        
// A matching row was found - the user is authenticated.
        // ESTA DEBE SER LA PRIMERA LINEA EJECUTADA PARA EVITAR PROBLEMAS: 
       
session_start();
       
//En este list agregarias los otros datos que necesites y ya tengas en la consulta
       
list($user_id,$user_email,$full_name,$country,$nivel_acceso) = mysql_fetch_row($result);
        
// Aqui asignas el resto de variables de sesion que necesites
        // Y las podras usar en todo tu sitio 
        
$_SESSION['user']= $user_email;
        
$_SESSION['full_name'] = $full_name;
        
$_SESSION['country'] = $country;
        
$_SESSION['nivel_acceso'] = $nivel_acceso;               
        if (isset(
$_GET['ret']) && !empty($_GET['ret']))
        {
        
header("Location: $_GET[ret]");
        } else
        {
        
header("Location: myaccount.php");
        }
        
//echo "Logged in...";
        
exit();
    } 

header("Location: login.php?msg=Email o contraseña no válido.");
//echo "Error:";
exit();        
}

?>

Esta es la página que quiero proteger con nivel de acceso 2:

Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['user']))
{
 die (
"<center><font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#CC0000'><strong>Aviso</strong><br>     
<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#CC0000'>No has iniciado sesión o no tienes permiso para ver esta página.<br>"
);
}


$nivel_acceso=2
if (
$nivel_acceso $_SESSION['nivel_acceso']){
 die (
"No tienes acceso a este nivel");
}
?>

Última edición por Polu; 16/01/2009 a las 20:22 Razón: Título equivocado