Ayuda!! Login con número máximo de intentos

Iniciado por Victortgpc, 30 Enero 2017, 22:04 PM

0 Miembros y 1 Visitante están viendo este tema.

Victortgpc

tengo el Login completamente Hecho, pero quiero agregarle un máximo de 3 intentos para que este lance una ventana que diga "Has excedidos el numero de intentos, porfavor vuelva mas tarde" esto me tiene con un dolor de cabeza  :-[ , no soy muy bueno programando ya que apenas estoy empezando. por eso consulto con ustedes

Este es es codigo, lo estoy realizando en Visual Basic 2010.

Código (vbnet) [Seleccionar]
#pragma endregion

private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
}
private: System::Void textBox2_TextChanged(System::Object^  sender, System::EventArgs^  e) {
this->textBox2->PasswordChar='*';
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
if (textBox1->Text=="Victortgpc" && textBox2->Text=="051520")

{
BasedeDatos ^ ObjectForm=gcnew BasedeDatos; ObjectForm->ShowDialog (this);
}

else MessageBox::Show("ERROR: Contraseña o Usuario Incorrectos");
textBox1->Text="";
textBox2->Text="";

}
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    label1->Text="Usuario";
label2->Text="contraseña";
button1->Text="Aceptar";
 
}
};
}



alguna manera de agregar esto ? de verdad les agradecería la ayuda chicos!!




· Los códigos deben ir en etiquetas GeSHi
· Cada cosa va en su subforo, esto no es C/C++
>aquí las reglas del foro
-Engel Lex

ivancea96

Puedes guardar en una variable, que estará fuera de la función, la cantidad de intentos que  has hecho hasta ahora. Cada vez que fallas, la incrementas en 1. Si es igual a 3, muestras el mensaje y no le permites probar.

Victortgpc

sabrías como aplicarla ? ya yo estoy que me revienta la cabeza con esto, la verdad yo no se ya como, apenas comienzo con la programación y estoy...

Eleкtro

Cita de: Victortgpc en  1 Febrero 2017, 18:11 PMsabrías como aplicarla ?

En tu código, en el controlador de eventos "button1_Click" tienes un bloque If/Else donde puedes implementar facílmente lo que te han dicho sin realizar grandes modificaciones en el código.

Declarar variable contador.

void button1_Click(...)
    IF CONTRASEÑA_CORRECTA:
        Permitir logueo.
    ELSE:
        Sumar el contador de intentos.
        IF CONTADOR = 3:
            ...

     
Saludos








Victortgpc

#4
seria algo así entonces ?

Código (cpp) [Seleccionar]
#pragma endregion

int cont=0;

private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
}
private: System::Void textBox2_TextChanged(System::Object^  sender, System::EventArgs^  e) {
this->textBox2->PasswordChar='*';
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
if (textBox1->Text=="Victortgpc" && textBox2->Text=="051520")


{
BasedeDatos ^ ObjectForm=gcnew BasedeDatos; ObjectForm->ShowDialog (this);
}

else MessageBox::Show("ERROR: Contraseña o Usuario Incorrectos. Vuelve a intentar");
textBox1->Text="";
textBox2->Text="";
cont=cont+1;
if (cont==3) {"Has excedido el numero Maximo de intentos. Vuelve mas tarde";}
}
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
     label1->Text="Usuario";
label2->Text="contraseña";
button1->Text="Aceptar";
 
}
};
}




después de tanto rato intentando, he llegado hasta aquí, he solucionado varios errores ahora solo falta uno y es "error C3845: 'SistemadeLogin::Form1::cont': solamente se pueden inicializar miembros de datos estáticos dentro de clase ref o de un tipo de valor"
hasta aquí llegue, alguien sabe de que viene este error ? se supone que cont se utiliza para contar no ?

Disculpen si los errores son fatales. Saludos y muchas gracias me han ayudado mucho!

Victortgpc

Problema resuelto:

Código (cpp) [Seleccionar]


#pragma endregion

static int cont=0;

private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
}
private: System::Void textBox2_TextChanged(System::Object^  sender, System::EventArgs^  e) {
this->textBox2->PasswordChar='*';
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
if (textBox1->Text=="Victortgpc" && textBox2->Text=="051520")


{
BasedeDatos ^ ObjectForm=gcnew BasedeDatos; ObjectForm->ShowDialog (this);
}

else MessageBox::Show("ERROR: Contraseña o Usuario Incorrectos. Vuelve a intentar");
textBox1->Text="";
textBox2->Text="";
cont=cont+1;
if (cont>=3) MessageBox::Show ("Has excedido el numero Maximo de intentos. Vuelve mas tarde");
}
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
     label1->Text="Usuario";
label2->Text="contraseña";
button1->Text="Aceptar";
 
}
};
}



gracias a todos por ayudar!