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.