Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Comprobar contraseña

Tengo el siguiente codigo, la idea como el soft solo maneja una sola contraseña para la configuracion es solamente comprobar la contraseña para ello hice esto

Código Delphi [-]
procedure Tflogin.BloginClick(Sender: TObject);
var
contraseña2: string;
begin
  fmodulo.qcontraseña.Active:= true;
  if trim(ELcont.Text) = ''
   then
    ShowMessage('Por favor intruzca la contraseña de administracion')
   else
    contraseña2 := CalcHash2 (ELcont.Text, haMD5);
    fmodulo.qcontraseña.Open;
      if contraseña2 = fModulo.qcontraseña['pass'] 
        then
          showMessage('hola') //jamas entra aqui
      else
        //ShowMessage('chau');
        Edit1.Text := contraseña2; // use esto para verificar si el hash coincide
end;

Por mas que el hash sea el mismo siempre me manda el else
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #2  
Antiguo 09-12-2017
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 146
Poder: 18
aposi Va por buen camino
Código Delphi [-]
if contraseña2 = fModulo.qcontraseña['pass'].value
Responder Con Cita
  #3  
Antiguo 09-12-2017
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Si de pronto no es lo que señala aposi. Se me ocurre que quizá CalcHash2 esté devolviendo un espacio... quizá hay que aplicar Trim ahí. Si puedes poner el código de CalcHash2 a lo mejor podríamos probar el tema.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 10-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cita:
Empezado por aposi Ver Mensaje
Código Delphi [-]if contraseña2 = fModulo.qcontraseña['pass'].value
No me deja usar esto, error "invalid variant operarto"

Cita:
Empezado por jhonny Ver Mensaje
Si de pronto no es lo que señala aposi. Se me ocurre que quizá CalcHash2 esté devolviendo un espacio... quizá hay que aplicar Trim ahí. Si puedes poner el código de CalcHash2 a lo mejor podríamos probar el tema.
Por lo visto si me esta devolviendo el valor nulo, probe con
Código Delphi [-]
      else
        //ShowMessage('chau');
        Edit1.Text := fModulo.qcontraseña['pass'];
Y efectivamente salio que era nulo, la consulta en teoria no deberia serlo

Y el codigo de calhast2 esta en este post y funciona perfectamente lo use para guardar la contraseña anteriormente Hash md5
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.

Última edición por The Cid James fecha: 10-12-2017 a las 01:28:38.
Responder Con Cita
  #5  
Antiguo 10-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Lo solucione de la siguente forma para que encontrara el valor de "pass"

Código Delphi [-]
procedure Tflogin.BloginClick(Sender: TObject);
var
contraseña2, contraseña3: string;
begin
fmodulo.qcontraseña.Active:= true;
  if trim(ELcont.Text) = ''
    then
      ShowMessage('Por favor intruzca la contraseña de administracion')
   else
    contraseña2 := CalcHash2 (ELcont.Text, haMD5);
    if  fmodulo.qcontraseña.Locate('pass', contraseña2, [])
      then
        begin
          Self.Close;
          fmodulo.qempresa.Active := true;
          fmodulo.qempresa.Edit;
          fconfiguracion := Tfconfiguracion.Create(self);
          fconfiguracion.Parent := fPrincipal.TPprincipal;
          fconfiguracion.ManualDock(fPrincipal.TPprincipal);
          fconfiguracion.Align := alClient;
          fconfiguracion.Show;
          fmodulo.qcontraseña.Active := false;
        end
    else
      ShowMessage('Contraseña incorrecta por favor intentelo de nuevo');
      fmodulo.qcontraseña.Active := false;
end;
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #6  
Antiguo 10-12-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Volviendo al codigo original, los tiros van por aca:

Cita:
Empezado por aposi Ver Mensaje
Código Delphi [-]
if contraseña2 = fModulo.qcontraseña['pass'].value
No tengo Delphi a mano para probar, pero fModulo.qcontraseña['pass'].value esto devuelve un Variant, y contraseña2 es un string. Y como no tengo a mano para probar, no recuerdo si se pueden comparar directamente strings y Variants.

Lo que si se puede hacer es convertir el valor del campo a string, quedando asi:

Código Delphi [-]
if contraseña2 = fModulo.qcontraseña['pass'].AsString

Ahora si es posible comparar los dos strings

El Locate lo que hace es posicionar el DataSet en el primer registro que cumple la condición, y devuelve True si encontró 1, o False en caso contrario

Última edición por AgustinOrtu fecha: 10-12-2017 a las 22:03:49.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comprobar si existe una BD darkamerico Conexión con bases de datos 7 04-11-2014 03:37:29
comprobar sql cuscus Conexión con bases de datos 3 22-11-2006 08:22:24
Comprobar que es Integer Alexis7788 Varios 4 01-10-2006 06:10:15
comprobar?? botones67 Varios 5 03-10-2003 22:09:05
comprobar?? botones67 Conexión con bases de datos 2 03-10-2003 20:29:21


La franja horaria es GMT +2. Ahora son las 01:42:16.


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