08/09/2015, 06:35
|
| | | Fecha de Ingreso: agosto-2015 Ubicación: Coatzacoalcos
Mensajes: 87
Antigüedad: 9 años, 5 meses Puntos: 1 | |
Respuesta: sesiones en php Cita:
Iniciado por xfxstudios 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'); }
Hola de nuevo amigo gracias nuevamente por tu gran ayuda que me estas brindando tengo un error de acuerdo al codigo que me mandaste quise acoplarlo al mio de la siguiente manera Código PHP: <?php
session_start();
if($_SESSION['u_profile'] == "Trabajador"){
}
else{
header("Location: /sistemaarasystem/index.php");
}
?> funciona al perfeccion NO PUEDO ENTRAR A LA PARTE DE UN ADMINISTRADOR Y UN ADMINISTRADOR A LA PARTE DE UN USARIO NORMAL eso era la parte que me interesaba mas sin embargo al momento de entrar con el usuario trabajador de igual manera me bota al index.php infiere que dentro del if ira un sentencia mas. Código PHP: if($_SESSION['u_profile'] == "Trabajador"){
// que sentencia podria ir aqui para que observe //que de verdad soy el usuario norma y me deje en esta misma pagina
}
UNA VEZ MAS GRACIAS POR TU VALIOSA AYUDA
__________________ Lo fácil, ya lo hice, lo difícil lo estoy haciendo y lo imposible, me tardare pero lo lograre. |