elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema login usuarios
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema login usuarios  (Leído 2,200 veces)
Winterz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Problema login usuarios
« en: 26 Mayo 2014, 18:19 pm »

Hola buenas tengo 2 dudas bastante simples que no me consiguen salir,

Tengo una ventana tipica de alta usuario con sus correspondientes campos nombre, dni, email y contraseña, lo que no consigo es que me saque un error cuando dejo algun campo vacio de manera que no me permita registrarme si no he introducido todos los campos aunque sea con datos estupidos. He probado haciendo sentencia de control con textNombre.getText.isEmpty pero me da NullPointerException y no he sabido solucionarlo, habia pensado en una exception pero nose donde situarla.

La otra duda que tengo esque tengo almacenados en un Hashmap a los usuarios que se van registrado, en el momento del login nose como hacer para que te valide las 2 cosas de manera que si encuentra el usuario sepa ya su contraseña y me pueda validar ambos campos.

En este mismo punto me encuentro con que tengo un login de administrador, el cual no he incluido en el mismo saco que los Usuarios, si logeo como admin debe de aparecer una ventana si logeo como usuario pues otra. Habia pensado en hacer un control tipico de si el texto es admin y la pass 1234 vete a la ventana de admin sino comprueba que el usuario exista.


En línea

NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Problema login usuarios
« Respuesta #1 en: 26 Mayo 2014, 18:57 pm »

Has probado con un try catch o un do while?


En línea

Migugami

Desconectado Desconectado

Mensajes: 22


Systems Analyst


Ver Perfil
Re: Problema login usuarios
« Respuesta #2 en: 26 Mayo 2014, 20:12 pm »

Cita de: Winterz
Tengo una ventana tipica de alta usuario con sus correspondientes campos nombre, dni, email y contraseña, lo que no consigo es que me saque un error cuando dejo algun campo vacio de manera que no me permita registrarme si no he introducido todos los campos aunque sea con datos estupidos

Es realmente sencillo, hay diversas formas de validar datos, aquí te pongo un ejemplo:

Código
  1. public class RegistrarClienteControl {
  2.  
  3. final RegistrarClienteGUI GUI;
  4.  
  5. public RegistrarClienteControl(RegistrarClienteGUI referencia) {
  6. gui = referencia;
  7. }
  8.  
  9. public boolean validar(TextField... campos) {
  10. boolean validacion_ok = true;
  11. boolean campos_vacios = false;
  12.  
  13. for(TextField txt : campos) {
  14. if(txt.getText().isEmpty) {
  15. validacion_ok = false;
  16. campos_vacios = true;
  17. break;
  18. }
  19. }
  20.  
  21. if(campos_vacios)
  22. JOptionPane.showMessageDialog(GUI,"No deje campos vacíos.");
  23. else if( !isNumeric(GUI.txtTelefono.getText()) )
  24. JOptionPane.showMessageDialog(GUI,"Algunos campos deben ser numéricos.");
  25.  
  26. return validacion_ok;
  27. }
  28.  
  29. public void guardarCliente() {
  30. boolean exito = validar(GUI.txtNombre, GUI.txtApellido, GUI.txtDireccion, GUI.txtEmail, GUI.txtTelefono);
  31. if(exito) {
  32. // aqui guardas los datos
  33. }
  34. }
  35.  
  36. private boolean isNumeric(String posbl_num) {
  37. try {
  38. Integer.parseInt(posbl_num);
  39. return true;
  40. } catch (NumberFormatException ex) {
  41. return false;
  42. }
  43. }
  44.  
  45. } // FIN

Cita de: Winterz
La otra duda que tengo esque tengo almacenados en un Hashmap a los usuarios que se van registrado, en el momento del login nose como hacer para que te valide las 2 cosas de manera que si encuentra el usuario sepa ya su contraseña y me pueda validar ambos campos.

Cuando se ingrese el usuario y contraseña en el login, en primer lugar debes extraer esos datos. Luego, buscas el usuario en el HashMap, si lo encuentra procedes a comparar las contraseñas.

Código
  1. public class ValidacionLogin {
  2.  
  3. private boolean usuario_existe(String usuario) {
  4. if(listaUsuarios.containsKey(usuario))
  5. return true;
  6. else
  7. return false;
  8. }
  9.  
  10. private boolean validar_password(String usuario, String password_ingresado) {
  11. String password = listaUsuarios.get(usuario);
  12. if(password.equals(password_ingresado))
  13. return true;
  14. else
  15. return false;
  16.  
  17. }
  18.  
  19. public void validar_login() {
  20. String usuario = txtUsuario.getText();
  21. String password = txtPassword.getText();
  22. boolean exito = false;
  23.  
  24. if(usuario_existe(usuario)) {
  25. if(validar_password(password))
  26. ingresar();
  27. else
  28. JOptionPane.showMessageDialog(GUI,"El password ingresado es incorrecto.");
  29. }
  30. else
  31. JOptionPane.showMessageDialog(GUI,"Usuario no existe.");
  32. }
  33.  
  34. public void ingresar() {
  35. // codigo para redireccionar a la pagina del cliente
  36. }
  37.  
  38. } // FIN

Yo te recomendaría que crees una entidad (bean) que represente a los clientes para que guardes los datos en un objeto Cliente. Te pongo un ejemplo:

Código
  1. public class Cliente {
  2. private String nombre;
  3. private String apellido;
  4. private String direccion;
  5. private String email;
  6. private int telefono;
  7.  
  8. public Cliente(String nombre, String apellido, String direccion,
  9. String email, int telefono) {
  10. this.nombre = nombre;
  11. this.apellido = apellido;
  12. this.direccion = direccion;
  13. this.email = email;
  14. this.telefono = telefono;
  15. }
  16.  
  17. public String getNombre() {
  18. return this.nombre;
  19. }
  20.  
  21. public void setNombre(String nombre) {
  22. this.nombre = nombre;
  23. }
  24.  
  25. public String getApellido() {
  26. return this.apellido;
  27. }
  28.  
  29. public void setApellido(String apellido) {
  30. this.apellido = apellido;
  31. }
  32.  
  33. public String getDireccion() {
  34. return this.direccion;
  35. }
  36.  
  37. public void setDireccion(String direccion) {
  38. this.direccion = direccion;
  39. }
  40.  
  41. public String getEmail() {
  42. return this.email;
  43. }
  44.  
  45. public void setEmail(String email) {
  46. this.email = email;
  47. }
  48.  
  49. public int getTelefono() {
  50. return this.telefono;
  51. }
  52.  
  53. public void setTelefono(int telefono) {
  54. this.telefono = telefono;
  55. }
  56.  
  57. } // FIN

Entonces, para registrar al cliente lo haríamos así:

Código
  1. public class RegistrarClienteControl {
  2.  
  3. final RegistrarClienteGUI GUI;
  4. List<Cliente> listaClientes = new ArrayList<>(); // aqui se guardaran los clientes
  5.  
  6. public RegistrarClienteControl(RegistrarClienteGUI referencia) {
  7. gui = referencia;
  8. }
  9.  
  10. public boolean validar(TextField... campos) {
  11. boolean validacion_ok = true;
  12. boolean campos_vacios = false;
  13.  
  14.  
  15. for(TextField txt : campos) {
  16. if(txt.getText().isEmpty) {
  17. validacion_ok = false;
  18. campos_vacios = true;
  19. break;
  20. }
  21. }
  22.  
  23. if(campos_vacios)
  24. JOptionPane.showMessageDialog(GUI,"No deje campos vacíos.");
  25. else if( !isNumeric(GUI.txtTelefono.getText()) )  
  26. JOptionPane.showMessageDialog(GUI,"Algunos campos deben ser numéricos.");
  27.  
  28. return validacion_ok;
  29. }
  30.  
  31. public void guardarCliente() {
  32. boolean exito = validar(GUI.txtNombre, GUI.txtApellido, GUI.txtDireccion, GUI.txtEmail, GUI.txtTelefono);
  33. if(exito) {
  34. String nombre = GUI.txtNombre.getText();
  35. String apellido = GUI.txtApellido.getText();
  36. String direccion = GUI.txtDireccion.getText();
  37. String email = GUI.txtEmail.getText();
  38. int telefono = Integer.parseInt(GUI.txtTelefono.getText());
  39. listaClientes.add(new Cliente(nombre, apellido, direccion, email, telefono));
  40. }
  41. }
  42.  
  43. private boolean isNumeric(String posbl_num) {
  44. try {
  45. Integer.parseInt(posbl_num);
  46. return true;
  47. } catch (NumberFormatException ex) {
  48. return false;
  49. }
  50. }
  51.  
  52. } // FIN

Ahora, para validar el login, haríamos lo siguiente:

Código
  1. public class validacionLogin {
  2.  
  3. private boolean usuario_existe(String usuario) {
  4. boolean existe = false;
  5.  
  6. for(Usuarios u : listaUsuarios) {
  7. if (u.getUsuario().equals(usuario))
  8. existe = true;
  9. break;
  10. }
  11.  
  12. return existe;
  13. }
  14.  
  15. private boolean validar_password(String usuario, String password_ingresado) {
  16. String password = listaUsuarios.get(usuario);
  17. boolean success = false;
  18.  
  19. for(Usuarios u : listaUsuarios) {
  20. if (u.getUsuario().equals(usuario)) {
  21. String password = u.getPassword();
  22. if(password.equals(password_ingresado))
  23. success = true;
  24. }
  25.  
  26. }
  27.  
  28. }
  29.  
  30. public void validar_login() {
  31. String usuario = txtUsuario.getText();
  32. String password = txtPassword.getText();
  33.  
  34. if(usuario_existe(usuario)) {
  35. if(validar_password(password))
  36. ingresar();
  37. else
  38. JOptionPane.showMessageDialog(GUI,"El password ingresado es incorrecto.");
  39. }
  40. else
  41. JOptionPane.showMessageDialog(GUI,"Usuario no existe.");
  42. }
  43.  
  44. public void ingresar() {
  45. // codigo para redireccionar a la pagina del cliente
  46. }
  47.  
  48. } // FIN

Trabajar con entidades (beans) es muy importante en el desarrollo de aplicaciones Java. Recuerda, Java es un lenguaje casi total orientado a objetos, por lo que hay que aprovechar las ventajas que ésto nos trae.

Un saludo.
En línea

Winterz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema login usuarios
« Respuesta #3 en: 27 Mayo 2014, 00:38 am »

Muchas gracias me has sido de gran ayuda!!!!

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Atascado en Login de usuarios... « 1 2 »
PHP
Noxors 10 4,524 Último mensaje 25 Abril 2008, 22:20 pm
por Noxors
Crear sistema de login y paginas para usuarios
PHP
& eDu & 2 7,487 Último mensaje 14 Junio 2008, 02:20 am
por DarK_FirefoX
Dar permisos a los usuarios en login
PHP
n3fisto 3 9,489 Último mensaje 27 Noviembre 2009, 15:12 pm
por n3fisto
Sistema de usuarios 1 login
PHP
Cromatico 9 7,066 Último mensaje 8 Febrero 2011, 18:12 pm
por Cromatico
Usuarios para login
Bases de Datos
datab 1 2,309 Último mensaje 4 Marzo 2015, 09:06 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines