Filtrar consulta de sesión

Hola tengo una página web con acceso restringido, el acceso es por nombre y contraseña, los nombres si que se repiten, pero las contraseñas son todas diferentes. El problema es que al hacer que en la página ponga lo típico de sesión iniciada por... El nombre si lo pone bien pero los apellidos pone los del primero que encuentra con ese nombre. El recortset lo hago con usuario = variable sesion - MM_Username. ¿Hay otra forma de filtrar la consulta para que busque el que coincida con la contraseña?
Gracias

1 respuesta

Respuesta
1
No (debes) puedes usar como variable de sesión (ni en general para identificar a un elemento de una base de datos) un campo que pueda admitir duplicados.
Lo que yo haría es impedir que se repitan los usuarios, los ya repetidos asignarles un numero correlativo, es decir si hay dos "pepes" cambialos a "pepe1" y ""pepe2", informa a los usuarios y que cambien su nombre silo desean.
Como supongo que eso no será fácil, utiliza como variable de sesión la contraseña (con los consiguientes problemas de seguridad) y de ahí puedes sacar ya el nombre y apellidos de forma inequívoca. O como variables de sesión usa el nombre de usuario y los apellidos, no tienes porque usar una sola variable, es decir, al definir la variables de sesión puedes hacerlo así:
$_SESSION['usuario']=$usuario;
$_SESSION['apellidos']=$apellidos;
Aunque valides solo el nombre de usuario (que eso te puede generar problemas dependiendo de que acciones puedan ejecutar los usuarios registrados, porque si es un foro por ejemplo, con el mismo nombre dos personas pueden dar opiniones diferentes, e incluso una puede ofender a otra y verse perjudicado un tercero, vamos, que así no se debe hacer) puedes presentar en pantalla los datos de sus apellidos sin tener que consultar la base de datos otra vez.
Si es que el nombre de usuario es el nombre de la persona, no un nick, usa el dni, el correo, el teléfono, lo que sea que sea único, porque incluso si usases nombre y apellidos podría haber duplicados y las sesiones, si entran dos usuarios con el mismo nombre, se podrían cerrar el uno al otro teniendo que volver a identificarse, y crear valores erróneos si introducen datos en la base de datos.
Bueno, creo que te ha quedado clara mi opinión sobre no usar como variable de sesión el nombre si hay duplicados :-)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas