Liverbird Posted December 17, 2013 Report Share Posted December 17, 2013 Buenas. Me gustaria hacer una consulta que me tiene un poco metido. Tengo que hacer un login de usuarios que conecte a una tabla Usuarios, pero necesito saber como lo puedo hacer para que al momento de hacer Login con un user, direccione a una u otra pagina dependiendo del tipo de usuario que sea, se entiende? Ejemplo, si se loguea un compadre que sea TIPO_USUARIO = ADMIN, que me lleve al panel de administracion, y si es usuario comun y corriente que me lleve al panel de usuario. El login que tengo me funciona pero me direcciona todos los usuarios a una misma pagina, entonces no se me ocurre como hacer el filtrado. Link to comment Share on other sites More sharing options...
RALCN Posted December 17, 2013 Report Share Posted December 17, 2013 Eso depende de como tienes diferenciado a los administradores de los usuarios, son tablas separadas ? es una tabla con un campo "tipo_usuario" donde 1 es igual a usuario y 2 a administrador ? debes realizar una consulta donde se diferencie qué cosa es la que estás sacando. Entonces...CONSULTA PREGUNTANDO ES ADMIN ?Si, entonces lo mando a admin.phpElseLo mando a usuarios.php Como dato, si es esto lo que estás intentando hacer, los usuarios que no son iguales (más en el caso de ser admin y usuarios) deben tener login diferentes, no para evitar este tipo de cosas, si no para evitar vulnerabilidad en tu sistema... Al igual que en las tablas, aunque no importa mucho, pero sí deberías tener una tabla unica para administradores y otra unica para usuarios. El filtrado va por lo que te dejo arriba, debes tener una condición que los diferencie. te recomiendo si no quieres modificar mucho tu modelo de datos, agregar un campo más onda "tipo_usuario" donde 1 es admin, 2 es usuario... y al sacarlo para crear la sesion, preguntasif( row['tipo_usuario'] == 1){$location = "admin.php";}else{$location = "usuario.php";} luego haces el header("Location: ".$location);exit(); según corresponda a tu diseño Link to comment Share on other sites More sharing options...
Liverbird Posted December 17, 2013 Author Report Share Posted December 17, 2013 Estan todos los usuarios en una tabla "Usuarios", lo que hace la diferencia es el campo TIPO_USUARIO que es un campo de texto, Vendria siendo: Admin, Editor, Periodista. Esos 3 tipos de usuarios tengo que redireccionar a sus paneles respectivos al hacer Login. Link to comment Share on other sites More sharing options...
Ra Posted December 17, 2013 Report Share Posted December 17, 2013 Lo mejor es que crees una sola página con los 3 perfiles... Así vas habilitando o deshabilitando opciones de acuerdo al perfil... Un ejemplo burdo: if($admin) echo "<li>Cuentas de Usuario</li>"; Link to comment Share on other sites More sharing options...
RALCN Posted December 18, 2013 Report Share Posted December 18, 2013 entonces un if poh...cuando haces la consulta de si existe o no un usuario con ese nombre y esa contraseña... hazla con un select $rows = select * from usuarios where nombre = '$_POST[nombre]' and pass = '$passHasheada';etc etc... procesas el query y sacas los resultados... entonces if($rows['tipo_usuario'] == 1) //editor{Guardo en una variable la página correspondiente al usuario editor $location = "editores.php";}if($rows['tipo_usuario'] == 2) //admin{ $location = "admin.php";}if($rows['tipo_usuario'] == 3) //usuario{ $location = "usuarios.php";} al final cuando haces el direccionamiento hacesheader("Location:".$location);listo Link to comment Share on other sites More sharing options...
AshWilliams Posted December 18, 2013 Report Share Posted December 18, 2013 No olvidar validar el perfil en la página también...sería un fallo tremendo poder llegar a la web de admin.php solo sabiendo la ruta de esta, se que es algo básico, pero he visto una de casos :tonto: Saludos :krider: Link to comment Share on other sites More sharing options...
Liverbird Posted December 18, 2013 Author Report Share Posted December 18, 2013 (edited) Gracias por su tiempo en ayudar Aca esta el codigo que tengo funcionando, es la parte que me mando mi partner de trabajo y yo tengo que corregirlo http://tny.cz/b19116ed Edited December 18, 2013 by Liverbird Link to comment Share on other sites More sharing options...
RALCN Posted December 18, 2013 Report Share Posted December 18, 2013 al parecer tu página tiene una misma para todos, tanto para usuarios, editores y administradores... en esa página, debes preguntar por el tipo de sesion que es, si es usuario, admin y editor y según eso, muestras las distintas cosas. porque todas direccionan a mantenedores.php, no hay otra página ? usuarios.php ? algo único para cada uno? si no es así, debo decirte que el sitio está harto mal desarrollado. Link to comment Share on other sites More sharing options...
AshWilliams Posted December 18, 2013 Report Share Posted December 18, 2013 Me llamó la atención este código: if (isset($_SESSION['PrevUrl']) && false) Onda, porqué man, porqué?? :tonto: Link to comment Share on other sites More sharing options...
Liverbird Posted December 18, 2013 Author Report Share Posted December 18, 2013 Me llamó la atención este código: if (isset($_SESSION['PrevUrl']) && false) Onda, porqué man, porqué?? :tonto: No tengo pico idea, como te digo no hice yo el login al parecer tu página tiene una misma para todos, tanto para usuarios, editores y administradores... en esa página, debes preguntar por el tipo de sesion que es, si es usuario, admin y editor y según eso, muestras las distintas cosas. porque todas direccionan a mantenedores.php, no hay otra página ? usuarios.php ? algo único para cada uno? si no es así, debo decirte que el sitio está harto mal desarrollado.Logicamente hay un mantenedor para cada tipo de usuario, el mantenedores.php los agrupa a todos para cuando se loguee el Admin que tiene todos los provilegios, lo deje asi a modo de prueba para ver como logro filtrarlos. Link to comment Share on other sites More sharing options...
Recommended Posts