Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2005
Yessy Yessy is offline
Registrado
 
Registrado: sep 2005
Posts: 3
Poder: 0
Yessy Va por buen camino
Thumbs up validar dos campos (password y usuario)

Hola
estoy tratando de validar dos campos, para el login de un programa.

Este me pide el usuario y el password pero de todas forma me da acceso si lo dejo vacio.
Gracias
Responder Con Cita
  #2  
Antiguo 08-09-2005
Sirkius Sirkius is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 20
Sirkius Va por buen camino
Bueno, pero como lo haces??

EDITO: o todavia no has empezado? no lo entendí bien...
__________________
SIN FIRMA :P
Responder Con Cita
  #3  
Antiguo 08-09-2005
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Cita:
Empezado por Yessy
Hola
estoy tratando de validar dos campos, para el login de un programa.

Este me pide el usuario y el password pero de todas forma me da acceso si lo dejo vacio.
Gracias
Deberías poner aquí el código, para así poder ayudarte. Hay muchas formas de poder hacerlo.
Responder Con Cita
  #4  
Antiguo 09-09-2005
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 19
Maury Manosalva Va por buen camino
Hola Yesi buen dia, lo que entiendo es que tienes dos campos en una BD, y necesitas verificar si este usuario esta creado y si la contraseña es correcta, lo que tienes que hacer desde el form de delphi crear dos objetos de conexion un DataSource que conecta a la BD y otro Query SQL desde donde vas a hacer la consulta. ahora vas a programar las consultas de esta manera:

esto es lo que lleva en el form de acceso.

Código Delphi [-]
 procedure TfrmLogin.cmdAccesarClick(Sender: TObject);
 Var
   consulta : String;
 begin
   with qryUsuario do
   begin
     close;
     SQL.Clear;
     consulta := 'Select * from TabUsuarios where LogUsuario ='+char(39)+
       txtUsuario.Text+char(39)+ 'and ConUsuario ='+chr(39) + txtcontrasena.Text+char(39);
     SQL.Add(consulta);
     Open;
     If (RecordCount=1) then
     Begin
       //siguiente form a mostrar
     End
     else
     Begin
       MessageDlg('Usuario o Contraseña Incorrecta, Por Favor Verifique',mterror,[mbOk],0);
       txtUsuario.SetFocus;
     end ;
   End;
 end;
Esta seria la manera para consultar si el usuario y la contraseña corresponden y la deje pasar al frmprincipal o como la quieras llamar.

P.D. Por favor sea mas explicita en las preguntas para que las respuestas sean muy concretas.

Maury Manosalva.
Bucaramanga, Colombia.

Última edición por dec fecha: 09-09-2005 a las 18:18:20. Razón: Encerrar el código fuente en la etiqueta [DELPHI]
Responder Con Cita
  #5  
Antiguo 09-09-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
no subestimes el poder del motor de busqueda del foro, aqui esta un hilo que muy seguramente te ayudara en tu proposito:

http://www.clubdelphi.com/foros/showthread.php?t=21935
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #6  
Antiguo 11-09-2005
Yessy Yessy is offline
Registrado
 
Registrado: sep 2005
Posts: 3
Poder: 0
Yessy Va por buen camino
Gracias

Gracias por responder.
No habia podido accesar a la pagina despues de ese dia desde mi computadora.
Aqui detallo el código que estoy utilizando.

procedure TPASSWORD.OKClick(Sender: TObject);

begin
if (edit1.Text= '')= true then
begin
showmessage ('Introduzca Su Nombre De Usuario');
edit1.SetFocus;
end;
if (edit2.Text= '')= true then
begin
showmessage ('Introduzca Su Password');
edit2.SetFocus;
end;
if (edit1.Text= '' )and (edit2.Text= '' )= true then
principal.ShowModal;
edit1.SetFocus;
edit1.Text:= '';
edit2.Text:= '';
edit1.SetFocus;
if (TBpassword.FindKey ([edit1.text]) = true ) then
showmessage ('Clave incorrecta');

end;


end.

El cual no me funciona.
Gracias nuevamente
Responder Con Cita
  #7  
Antiguo 11-09-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Código Delphi [-]
    procedure TPASSWORD.OKClick(Sender: TObject);
     begin
     if trim(edit1.Text= '') then
     begin
        showmessage ('Introduzca Su Nombre De Usuario');
        edit1.SetFocus;
      end else
       if trim(edit2.Text= '') then
        begin
          showmessage ('Introduzca Su Password');
          edit2.SetFocus;
        end else
    {Esto aqui no lo entiendo, ya que esos mismo campos lo evaluaste anteriormente
    Pienso que no va.}
    {
     if (edit1.Text= '' )and (edit2.Text= '' )= true then
      principal.ShowModal;
     edit1.SetFocus;
     edit1.Text:= '';
     edit2.Text:= '';
     edit1.SetFocus;}
  //if (TBpassword.FindKey ([edit1.text]) = true ) then
   {regularmente uso Locate}
   if not TBpassword.locate('usuario;clave',VarArrayOf([edit1.text,edit2.text]),[]) then
            showmessage ('Usuario o Clave incorrecta');
         else 
           {aqui el codigo para abrir tu ventana principal}
         end;
Por ultimo has una busqueda en este foro, yaqeu se ha hablado mucho (o bastante) de este tema.
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 11-09-2005 a las 18:17:49.
Responder Con Cita
  #8  
Antiguo 28-07-2006
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
Cita:
Empezado por Maury Manosalva

Código Delphi [-]
 procedure TfrmLogin.cmdAccesarClick(Sender: TObject);
 Var
   consulta : String;
 begin
   with qryUsuario do
   begin
     close;
     SQL.Clear;
     consulta := 'Select * from TabUsuarios where LogUsuario ='+char(39)+
       txtUsuario.Text+char(39)+ 'and ConUsuario ='+chr(39) + txtcontrasena.Text+char(39);
     SQL.Add(consulta);
     Open;
     If (RecordCount=1) then
     Begin
       //siguiente form a mostrar
     End
     else
     Begin
       MessageDlg('Usuario o Contraseña Incorrecta, Por Favor Verifique',mterror,[mbOk],0);
       txtUsuario.SetFocus;
     end ;
   End;
 end;
Aguas con las inyecciones SQL!!!!... este código que pusiste es muy susceptible de ser franqueado si en el password uno escribe algo como:
0' or '1'='1

si solo tienes un usuario en tu tabla con eso es suficiente para entrar a tu programa... aguas...
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #9  
Antiguo 28-07-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
Hola y gracias por responder.
Sólo quería comprobar que mi búsqueda fuera correcta y una vez conseguido entonces añadir la validación de la contraseña.
Probaré con ese código, ya tendrán noticias sobre como fue.....
Responder Con Cita
  #10  
Antiguo 28-07-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
Vale perfecto ese código es buenisimo, gracias xander, ahora viene mi pregunta;
yo lo estaba haciendo con un table y tan sólo quería buscar en ella un usuario con Locate, por ello:

if not ZTable1.Locate('usuario', Edit1.Text, []) then
showmessage('Usuario incorrecto.')

pero no funciona, y muestra un error tal que:
Starck overflow lei algo sobre ello, desbordamiento de pila podría ser, pero....
si solo uso locate ahi una vez porque ese error??


uso delphi 4 y los componentes zeos y Mysql
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:45:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi