Página 1 de 2

Campo Senha

Enviado: 08 Out 2007 11:26
por mclpaltrin
Prezados

- Estou com duvida Cruel.
- Como faço num campo senha , na hora da informação exibir o * ?

Grato

:-o

Enviado: 08 Out 2007 11:38
por alaminojunior
Estou tentando fazer a bendita GetPass do proprio Clipper funcionar com o xHarbour, porém, acho que estou esbarrando em alguma coisa. Será que alguem se habilita ?

Enviado: 08 Out 2007 12:01
por sygecom

Código: Selecionar todos

WSENHA := ;
GetSecret( WSENHA, 11, 14, .T., )

Enviado: 08 Out 2007 16:48
por alaminojunior
É verdade !!!
Mastigando um pouco mais...

Código: Selecionar todos

PROCEDURE Main
      LOCAL cPassword := Space(20)
      CLS
      SET CONFIRM ON

      cPassWord := ;
        GetSecret( cPassword, 10, 10, .T., "Enter your password: ")

      IF cPassWord <> "xHarbour"
         Alert( "Access denied" )
         QUIT
      ENDIF

      Alert( "Access granted" )
   RETURN

Enviado: 08 Out 2007 17:01
por Maligno
E se você precisar informar um campo de senha numa lista de vários campos?

Enviado: 08 Out 2007 17:04
por sygecom
Mude a variavel para cada campo....
cPassWord1
cPassWord2
cPassWord3

Enviado: 08 Out 2007 17:04
por alaminojunior
Por isso que penso num jeito de usar a GetPass do Clipper.

Enviado: 08 Out 2007 17:06
por Maligno
Pelo jeito, o problema está na interação de GetSecret() com uma lista de GETs. Se for apenas nome de log-in e senha, uma gambiarra resolve, mas se houver uma senha numa lista grande, já era.

Campo Senha

Enviado: 15 Ago 2018 11:12
por clodoaldomonteiro
Reabrindo o Tópico:

Teria como incluir essa rotina na GetSys?

Código: Selecionar todos

LOCAL nKey,              ;
      nChar,             ;
      cKey

  // read the GET if the WHEN condition is satisfied
  IF ( GetPreValidate(oGet) )
    // activate the GET for reading
    oGet:SetFocus()

    oGet:cargo := ""
    DO WHILE ( oGet:exitState == GE_NOEXIT )
      // check for initial typeout (no editable positions)
      IF ( oGet:typeOut )
        oGet:exitState := GE_ENTER
      ENDIF

      // apply keystrokes until exit
      DO WHILE ( oGet:exitState == GE_NOEXIT )
        nKey := InKey(0)
        IF nKey >= 32 .AND. nKey <= 255
          oGet:cargo += Chr(nKey)
          GetApplyKey(oGet, Asc("*"))
       	ELSEIF nKey == K_BS
          oGet:cargo := Substr(oGet:cargo, 1, Len(oGet:cargo) - 1)
          GetapplyKey(oGet, nKey)
        ELSEIF nKey == K_ENTER
          GetApplyKey(oGet, nKey)
        ENDIF
      ENDDO

      // disallow exit if the VALID condition is not satisfied
      IF ( !GetPostValidate(oGet) )
        oGet:exitState := GE_NOEXIT
      ENDIF
    ENDDO
    // de-activate the GET
    oGet:KillFocus()
  ENDIF
  IF oGet:exitState != GE_ESCAPE
    oGet:varPut(oGet:cargo)
  ENDIF
Eu a peguei no Site do Vagucs, rotina GetPass.

Campo Senha

Enviado: 16 Ago 2018 23:17
por JoséQuintas
Será que precisa mesmo ser na getsys?

Veja se interessa:

https://github.com/JoseQuintas/JoseQuin ... secret.prg

Campo Senha

Enviado: 21 Ago 2018 09:07
por syslink
show show!

Campo Senha

Enviado: 21 Ago 2018 10:02
por JoséQuintas
Agora que vi, tem um pequeno erro, que como uso geralmente como 20, não percebi.

Código: Selecionar todos

cText := Pad( cText, 20 )
deveria ser:

Código: Selecionar todos

cText := Pad( cText, nLen )
Pro tamanho ficar de acordo com o que foi passado, e não 20.

Campo Senha

Enviado: 21 Ago 2018 16:07
por clodoaldomonteiro
JoséQuintas escreveu:Será que precisa mesmo ser na getsys?

Veja se interessa:

https://github.com/JoseQuintas/JoseQuin ... secret.prg
É que no GetSys vc pode navegar pelos campos, caso vc esteja Getando vários campos e um deles seja a Senha.
Mas a tua função está ótima.

Campo Senha

Enviado: 22 Ago 2018 08:33
por Itamar M. Lins Jr.
Ola!
Essas rotinas de senha já tem uma falha logo de cara, pois "revelam" o tamanho da senha.
Em HTML por exemplo não sabemos nem o tamanho da senha.

Código: Selecionar todos

        <input type="password" id="senha" name="xsenha"
É a mesma coisa do @ x,y say "senha:" get xsenha só que em html funciona em tudo e é mantido por muita gente.

Saudações,
Itamar M. Lins Jr.

Campo Senha

Enviado: 22 Ago 2018 08:54
por janio
Clodoaldo,

ha tempos uso uma função simples que peguei garimpando pela internet:

@ 10,05 GET vSENHA PICT "@K"
ATAIL(GETLIST):READER := {|BL1|GETSEN(BL1)} // Pega csenha e mostra *
Read

Código: Selecionar todos

FUNCTION GETSEN(P1)

LOCAL L2, L3, L4 

IF GETPREVALIDATE(P1)

   P1:SETFOCUS() 
   P1:CARGO := "" 

   DO WHILE P1:EXITSTATE() == 0 

      IF P1:TYPEOUT() 

         P1:EXITSTATE := 5 

      ENDIF 

      DO WHILE P1:EXITSTATE() == 0 

         L2 := Inkey(0) 

         IF L2 >= 32 .AND. L2 <= 255 

            P1:CARGO := P1:CARGO() + CHR(L2) 
            GetApplyKey(P1, 42)  // NOME COMPLETO 

         ELSEIF L2 = 8 

            P1:CARGO := SUBSTR(P1:CARGO(), 1, LEN(P1:CARGO()) - 1) 
            GetApplyKey(P1, L2)  // NOME COMPLETO 

         ELSEIF L2 = 13 // Sai com tecla ENTER e retorna a 
            // senha digitada 
            GetApplyKey(P1, L2)  // NOME COMPLETO 

         ELSEIF L2 = 27 // Sai com Tecla ESC e retorna vazio 

            GetApplyKey(P1, L2) // NOME COMPLETO 

         ENDIF 

      ENDDO 

      IF .NOT. GETPOSTVALIDATE(P1) // NOME COMPLETO 

         P1:EXITSTATE := 0 

      ENDIF 

   ENDDO 

   P1:KILLFOCUS() 

ENDIF 

IF P1:EXITSTATE() <> 7 

   P1:VARPUT(P1:CARGO()) 

ENDIF 

RETURN 
É que no GetSys vc pode navegar pelos campos, caso vc esteja Getando vários campos e um deles seja a Senha.
Mas a tua função está ótima.
Essa vc pode colocar em uma tela com varios get's q nao tem problema