Jump to content

Consulta acerca de Sesiones en PHP y MySQL


Recommended Posts

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

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.php

Else

Lo 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, preguntas

if( 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

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

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 haces

header("Location:".$location);

listo

Link to comment
Share on other sites

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

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

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 :notonto:

 

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

Guest
This topic is now closed to further replies.
×
×
  • Create New...