bueno asi realizo yo la verificación del usuario que se conecta:
Código PHP:
Ver originalif(empty($_POST['usuario'])){ $msg = "";
} else if(empty($_POST['clave'])){ $msg = "";
}else{
$cedula1 = $_POST['cedula'];
$users = $db->query("SELECT usuario,clave,nombre,cedula,nivel,zona FROM usuarios WHERE usuario ='$usuario' AND cedula = '$cedula1'");
$row_result = $users->fetch_array();
$password = (crypt($_POST['clave'], $row_result['clave']));
$usuario = $row_result['usuario'];
$clave = $row_result['clave'];
$nivel = $row_result['nivel'];
$zona = $row_result['zona'];
$nombre = $row_result['nombre'];
$cedula = $row_result['cedula'];
if($clave == $password && $cedula == $cedula1){
$_SESSION['MM_Username'] = $usuario;
$_SESSION['logueado'] = true;
$_SESSION['nivel'] = $nivel; /*AQUÍ DECLARO EL NIVEL QUE TIENE EL USUARIO CONECTADO*/
$_SESSION['zona'] = $zona;
$_SESSION['cedula'] = $cedula;
$_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");
$fecha = $_POST['fecha'];
$hora = $_POST['hora'];
$ip = $_POST['ip'];
$acceso = $db->query("INSERT INTO accesos (usuario,nombre,cedula,fecha_entra,hora_entra,fecha_sale,hora_sale,ip_acceso) VALUES ('$usuario' , '$nombre' , '$cedula' , '$fecha' , '$hora' , '' , '' , '$ip')");
header('location: app/escritorio.php');
} else{
$fecha = $_POST['fecha'];
$hora = $_POST['hora'];
$ip = $_POST['ip'];
$intento = $db->query("INSERT INTO intentos_accesos (fecha,hora,ip,campo_usuario,campo_clave) VALUES ('$fecha' , '$hora' , '$ip' , '$_POST[usuario]' , '$_POST[clave]')");
$msg = "Datos inválidos";
}
}
Como puedes realizo la dirección a una sola pagina, sea quien sea el que se loguee.
en las paginas hay un include que indica que menu se va a cargar de acuerdo al nivel de la persona que se conecta:
Código PHP:
Ver original//Carga del dash de acuerdo al usuario logueado
if($_SESSION['nivel'] == "Usuario")
{
$menu = "menu_usuario";
}
else if($_SESSION['nivel'] == "Tecnico")
{
$menu = "menu_tecnico";
}
else if($_SESSION['nivel'] == "Cliente")
{
$menu = "menu_cliente";
}
else if($_SESSION['nivel'] == "Administrador")
{
$menu = "menu_administrador";
}
eso solo a a mostrar las paginas que le corresponde ver al usuario conectado por su nivel de acceso, no podra visualizar ninguna otra que yo no quiera, pero si de casualidad el usuario supiera el nombre de una pagina, por ejemplo de un administrador, en la variable de sesion de cada pagina esta la condicion de que se genere un error 404 si no tiene autorizacion para visualizarla:
Código PHP:
Ver original/*Ejemplo esta pagina solo puede ser vista por administradores, si alguien intenta acceder sin ese nivel, genera el erro*/
if (isset($_SESSION['MM_Username']) && $_SESSION['logueado'] == true && $_SESSION['nivel'] == 'Administrdor') {
}
else
{
header('Location:/JessalepComputer/error_acceso.php');
}