Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB6] Errore password non valida su collegamento FTP

    Facendo qualche prova per collegarmi, via FTP, ad un sito Wbb mi sono imbattuto in uno stranissimo problema.
    Scenario:
    Leggo la password registrata in chiaro in un file INI (lo so che è un cattiva pratica, ma è solo una prova)
    codice:
    Dim X                     As Long
    Dim Temp                As String * 200
    X = GetPrivateProfileString("GiudiziWeb", "PswFTP", "", Temp, Len(Temp), NomeFileIni)
    If X > 0 Then PswFTP = Left$(Temp, X)
    ITC.Password = PswFTP
    La password è ABCDEFGH (esempio).
    Tutto OK con il programma su 4 diversi computer, con il client FTP FileZilla e con il vecchio ma sempre valido client FTP WS_FTP95.

    Poi ho modificato, accedendo al pannello di controllo del sito, la password che è diventata ABCDEFGH22!
    Adesso solo 1 su 4 computer il programma funziona senza intoppi. Anche con Filezilla.
    Ma 3 su 4 computer e WS_FTP95 si rifiutano di stabilire la connessione.
    Se però imposto la password da codice invece di memorizzarla nel file INI
    codice:
    PswFTP = "ABCDEFGH22!"
    4 su 4 computer tornano a funzionare, eliminando la prima ipotesi che mi era venuta in mente (la password non può essere più lunga che di certo numero di caratteri).
    Ipotizzerei, ma la cosa mi pare ben strana essendo la variabile PswFTP una stringa, che il punto esclamativo finale confonda la DLL che sta dietro il GetPrivateProfileString e il programma crede di aver a che fare con una variabile single. Ma in tal caso perchè su un singolo computer è possibile stabilire la connessione ?
    Differenti versioni delle DLL ?
    Prossimamente farò altre prove per eliminare questi sospetti e capire questo stranissimo comportamento; adesso non ne ho la possibilità.
    Scrivo questo per condividere con i frequentatori del forum questo problema.
    Ultima modifica di giustavalla; 04-02-2021 a 15:10

  2. #2
    fatti stampare la variabile "X" dopo averla letta e controllala...

  3. #3
    Gia fatto.
    Ho inserito anche un msgbox che visualizza la password ed anche la sua lunghezza.
    Tutto normale.

  4. #4
    Intendo dire che X vale esattamente la lunghezza della Password ("ABCDEFGH22!").
    '
    codice:
       X = GetPrivateProfileString("Prova", "PswFTP", "", Temp, Len(Temp), NomeFileIni)
    '   If X > 0 Then PswFTP = Left$(Temp, X)
    'Dim Cas As Integer
    'For Cas = 1 To Len(PswFTP)
    '   Debug.Print Cas, Mid$(PswFTP, Cas, 1)
    'Next Cas
    Tutto come ci si potrebbe aspettare, ma ... la connessione non viene stabilita perchè la password non è valida.

  5. #5
    se invece PswFTP la imposti direttamente in VB, funziona?

  6. #6
    se invece PswFTP la imposti direttamente in VB, funziona?
    Sì !
    Questa è una linea del codice VB6, in sostituzione della chiamata a GetPrivateProfileString
    codice:
    PswFTP = "ABCDEFGH22!"
    e funziona !

  7. #7
    quindi vuol dire che sbagli il prelievo dal profilo. Dici che DOPO il prelievo stampi la password e questa è ok: mi pare strano.... puoi ricontrollare?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Controlla che tutti i caratteri letti e contenuti nella variabili siano visibili. Può farsi che ci sia anche un NULL alla fine (zero binario)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Non viene evidenziato niente di anomalo
    codice:
       Dim C As Integer
       For C = 1 To Len(PswFTP)
          Debug.Print C, Mid$(PswFTP, C, 1), Asc(Mid$(PswFTP, C, 1))
       Next C

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da giustavalla Visualizza il messaggio
    Non viene evidenziato niente di anomalo
    codice:
       Dim C As Integer
       For C = 1 To Len(PswFTP)
          Debug.Print C, Mid$(PswFTP, C, 1), Asc(Mid$(PswFTP, C, 1))
       Next C
    Sicuramente c'è un errore (e magari banale), ma così non ti si può dire molto altro ...

    Se vuoi postare uno zip da poter scaricare per provare di persona, magari si arriva facilmente a risolvere il mistero.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.