Anónimo
Ayuda con login
Tengo un inconveniente con un login te puedo escribir el código para que me digas en que parte me equivoco si no tuvieras inconveniente
1 respuesta
Respuesta de dimondi21
1
1
dimondi21, 9° Ciclo de Ing
Si claro, eso debiste hacer en la pregunta, ponerme el código de frente :D
Ya gracias ya bueno mi mi inquietud es la siguiente yo quisiera que si un usuario intenta tres veces y no logra abrir el aplicativo que su estado se vuelva inactivo
try{
Conexion obj = new Conexion();
String sql,contraseña,a,b,estado;
ResultSet rs;
contraseña = this.jPasswordField1.getText();
sql = "select usuario, clave,estado from tbl_usuarios where usuario='"+jTextField1.getText()+"' and clave ='"+contraseña+"'";
rs=obj.consultar(sql);
a=this.jTextField1.getText();
b=contraseña;
boolean encuentra=false;
while(rs.next())
{
if (a.equals(rs.getString(1)) && b.equals(rs.getString(2)) )
{
estado=rs.getString("estado");
if(estado.equals("1"))
{
new menu().show();
menu.lbPROCESAR.setEnabled(rs.getBoolean(3));
menu.probrar.setEnabled(rs.getBoolean(3));
menu.mathias.setVisible(rs.getBoolean(3));
menu.usuario.setText(rs.getString(1));
encuentra=true;
}
else{
JOptionPane.showMessageDialog(null,"USUARIO BLOQUEADO","SORRY",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
//
}
}
if(encuentra == true){
JOptionPane.showMessageDialog( null, "BIENVENIDO AL SISTEMA ¡GRACIAS!", "clinica san felipe", JOptionPane.INFORMATION_MESSAGE);
this.dispose();
}
if(encuentra == false ){
JOptionPane.showMessageDialog( null, "ERROR EN EL NOMBRE DE USUARIO O CONTRASEÑA", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
cont++;
jTextField1.setText("") ;
this.jPasswordField1.setText("");
jTextField1.requestFocus();
//
if(cont == 3){
JOptionPane.showMessageDialog(this,"USTED A HECHO MAS DE TRES INTENTO SE BLOQUEARA SU USUARIO");
bloquear()
System.exit(0);
}
}
} catch(Exception ex){
}
//////////////////////
Ahora para realizar esto no me sale e hecho este método y le agrego
public void bloquear (){
{
try
{
Conexion ob = new Conexion();
String sql1;
sql1 = "UPDATE tblusuario set Estado =0 where Usuario='"+jTextField1.getText()+"'";
ob.AbcProye(sql1);
JOptionPane.showMessageDialog( null, "REGISTRO PAGO SE ACTUALIZO CORRECTAMENTE", "ACTUALIZANDO", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
JOptionPane.showMessageDialog( null, "ERROR AL INTENTAR ACTUALIZAR EL PAGO", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
}
}
}
try{
Conexion obj = new Conexion();
String sql,contraseña,a,b,estado;
ResultSet rs;
contraseña = this.jPasswordField1.getText();
sql = "select usuario, clave,estado from tbl_usuarios where usuario='"+jTextField1.getText()+"' and clave ='"+contraseña+"'";
rs=obj.consultar(sql);
a=this.jTextField1.getText();
b=contraseña;
boolean encuentra=false;
while(rs.next())
{
if (a.equals(rs.getString(1)) && b.equals(rs.getString(2)) )
{
estado=rs.getString("estado");
if(estado.equals("1"))
{
new menu().show();
menu.lbPROCESAR.setEnabled(rs.getBoolean(3));
menu.probrar.setEnabled(rs.getBoolean(3));
menu.mathias.setVisible(rs.getBoolean(3));
menu.usuario.setText(rs.getString(1));
encuentra=true;
}
else{
JOptionPane.showMessageDialog(null,"USUARIO BLOQUEADO","SORRY",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
//
}
}
if(encuentra == true){
JOptionPane.showMessageDialog( null, "BIENVENIDO AL SISTEMA ¡GRACIAS!", "clinica san felipe", JOptionPane.INFORMATION_MESSAGE);
this.dispose();
}
if(encuentra == false ){
JOptionPane.showMessageDialog( null, "ERROR EN EL NOMBRE DE USUARIO O CONTRASEÑA", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
cont++;
jTextField1.setText("") ;
this.jPasswordField1.setText("");
jTextField1.requestFocus();
//
if(cont == 3){
JOptionPane.showMessageDialog(this,"USTED A HECHO MAS DE TRES INTENTO SE BLOQUEARA SU USUARIO");
bloquear()
System.exit(0);
}
}
} catch(Exception ex){
}
//////////////////////
Ahora para realizar esto no me sale e hecho este método y le agrego
public void bloquear (){
{
try
{
Conexion ob = new Conexion();
String sql1;
sql1 = "UPDATE tblusuario set Estado =0 where Usuario='"+jTextField1.getText()+"'";
ob.AbcProye(sql1);
JOptionPane.showMessageDialog( null, "REGISTRO PAGO SE ACTUALIZO CORRECTAMENTE", "ACTUALIZANDO", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
JOptionPane.showMessageDialog( null, "ERROR AL INTENTAR ACTUALIZAR EL PAGO", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
}
}
}
Pero no me sale por eso te escribí el código para ver en que me estoy equivocando
No no me bota ningún error lo que sucede es que la acción que yo quiero que realize el código no la hace ahora la acción es
El usuario al intentar ingresar al aplicativo realiza más de tres intentos su estado que es 1 se actualize a 0 con el cual no podrá ingresar al aplicativo
El usuario al intentar ingresar al aplicativo realiza más de tres intentos su estado que es 1 se actualize a 0 con el cual no podrá ingresar al aplicativo
Aparentemente el código esta bien, lo único que te puedo recomendar es que pruebes método por método, e imprimas los resultados de las variables, por ejemplo, si encuentras el usuario y contraseña, imprimes la variable "encuentra" para saber si ese encontró o no, así repides bloque por bloque para saber en donde esta tu error.
So pues el método lo pruebo aparte si si me cambia de estado pero realmente no se que pasa
Ok te voy a dar un tip para que veas tu error; como pretendes que el contador aumente si cada vez que te equivocas no haces que aumente el contador, ¿sino qué sales del sistema?
A esta parte te refieresss no esta parte hace que si el usuario escribe su usuario y su contraseña y si su estado es 0 entonces el sistema le dirá usuario bloqueado y lo saca del sistema immediatamenete
else{
JOptionPane.showMessageDialog(null,"USUARIO BLOQUEADO","SORRY",JOptionPane.WARNING_MESSAGE);
System.exit(0);
Ahora probando de nuevo me marca error en el método bloquear
else{
JOptionPane.showMessageDialog(null,"USUARIO BLOQUEADO","SORRY",JOptionPane.WARNING_MESSAGE);
System.exit(0);
Ahora probando de nuevo me marca error en el método bloquear
Si lo sacas del sistema, todo se cierra, y el contador que esta en cero, no aumenta, no deberías sacarlo del sistema, deberías mandar el mensaje de error y hacer que el contador aumente, ahí ya va un intento, cuando llegue a 3 intentos mandas el mensaje de error y recién le cambias el estado y lo sacas del sistema.
Por eso es que no te funciona y nunca te va a funcionar la parte del contador==3 porque no lo estas usando
Por eso es que no te funciona y nunca te va a funcionar la parte del contador==3 porque no lo estas usando
si pero lo cierra siempre y cuando el usuario este bloqueadoo si no esta bloqueado y se a equivocado de contraseña le va a mandar error ya mira probandolo me marca error en el metodo bloquear();
¿Pero para que este bloqueao el usuario debe tener 3 malos intentos y nunca los vas a poder contar porque cada vez que se equivoca sale del programa entiendes?
Si te sale mal tu método bloquear debe estar mal tu consulta o tu método ABC.. que no se que hace
Si te sale mal tu método bloquear debe estar mal tu consulta o tu método ABC.. que no se que hace
ahora me bota error en el metodo mira este es el metodo bloquear();
try
{
Conexion obj = new Conexion();
String sql;
sql = "UPDATE tblusuario set Estado = 0 where Usuario='"+jTextField1.getText()+"'";
obj.AbcProye(sql);
JOptionPane.showMessageDialog( null, "REGISTRO PAGO SE ACTUALIZO CORRECTAMENTE", "ACTUALIZANDO", JOptionPane.INFORMATION_MESSAGE);
} catch( Exception ex) {
JOptionPane.showMessageDialog( null, "ERROR AL INTENTAR ACTUALIZAR EL PAGO", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
}
y el ABCPROYE ES ESTE DE la clase conexion
public void AbcProye(String Consulta) throws Exception
{
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, login, password);
St = conn.createStatement();
St.execute(Consulta);
} catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, "ERROR DE ACTUALIZACION", "clinica", JOptionPane.INFORMATION_MESSAGE);
}
conn.close();
St.close();
}
Ahora al correr la aplicación me bota este mensaje "ERROR DE ACTUALIZACIÓN"" OSEA EL DE ARRIBA ALGUNA SUGERENCIA GRACIAS
try
{
Conexion obj = new Conexion();
String sql;
sql = "UPDATE tblusuario set Estado = 0 where Usuario='"+jTextField1.getText()+"'";
obj.AbcProye(sql);
JOptionPane.showMessageDialog( null, "REGISTRO PAGO SE ACTUALIZO CORRECTAMENTE", "ACTUALIZANDO", JOptionPane.INFORMATION_MESSAGE);
} catch( Exception ex) {
JOptionPane.showMessageDialog( null, "ERROR AL INTENTAR ACTUALIZAR EL PAGO", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
}
y el ABCPROYE ES ESTE DE la clase conexion
public void AbcProye(String Consulta) throws Exception
{
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, login, password);
St = conn.createStatement();
St.execute(Consulta);
} catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, "ERROR DE ACTUALIZACION", "clinica", JOptionPane.INFORMATION_MESSAGE);
}
conn.close();
St.close();
}
Ahora al correr la aplicación me bota este mensaje "ERROR DE ACTUALIZACIÓN"" OSEA EL DE ARRIBA ALGUNA SUGERENCIA GRACIAS
Me parece que te falta mucho en este tema del java, lo primero es aprender a solucionar tus propioes errores, cada error que te pasa, me llamas para que te lo solucione, así nunca vas a avanzar en nada. Esto no se trata de programar por programar, se trata de pensar
Prueba quitando el try catch y como se te va a poner la linea en rojo, le agregas por la sugerencia del compilador, "Soundround block with try catch", dentro del catch generado va a haber una linea que emieza con Logger. Dejala ahí, corre tu proyecto y te va a dar la linea del error
Prueba quitando el try catch y como se te va a poner la linea en rojo, le agregas por la sugerencia del compilador, "Soundround block with try catch", dentro del catch generado va a haber una linea que emieza con Logger. Dejala ahí, corre tu proyecto y te va a dar la linea del error
Si tienes razón soy nuevo en java por eso recurro a un experto para saber cual fue mi error pero no logro decifrarlo hice lo que me indicaste y no me bota ningún error
Así se empieza, como recomendación tienes que probar parte por parte de tu código, una vez que funciona, avanzar a la siguiente y seguir programando, mejor avanzar de a poquitos que avanzar todo y luego no tener como arreglarlo, pero esta bien, así se aprende.
Entonces, ¿sigues teniendo problemas?
Entonces, ¿sigues teniendo problemas?
Si mira e probado haciendo lo siguiente si el empleado coloca su usuario y contraseña y si son corectos abre el aplicativo y si son falsos bloquea el usuario en el primer intento y si me funciona correctamente el problema que tengo creo es el de bloquear al usuario después de tres intentos
Pues como siempre lees mis respuestas pero no las lees completas...
Nuevamente te lo voy a volver a repetir... Cuando la verificación del usuario y contraseña sea errónea, no salgas del sistema, es decir no uses el System. exit(0), sino que ahi recien implementa el contador y muestra el mensaje de que se ha equivocado, una vez que pasen los 3 intentos, bloqueas..
Nuevamente te lo voy a volver a repetir... Cuando la verificación del usuario y contraseña sea errónea, no salgas del sistema, es decir no uses el System. exit(0), sino que ahi recien implementa el contador y muestra el mensaje de que se ha equivocado, una vez que pasen los 3 intentos, bloqueas..
- Compartir respuesta
- Anónimo
ahora mismo