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 != 0 ) {
// 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");
}
?>