Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos,
Migrei um site de um servidor para o outro e está dando este erro que não acontecia no servidor antigo:
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'Asc'
/funcoes.asp, line 105
Este é o código:
Function hash(texto)
Dim cripta
cripta = ""
For i = 1 To Len(texto)
If cripta = "" Or i > Len("0123456789") Then x = 1 Else x = x + 1
cripta = cripta & Chr(255 - (Asc(Mid(texto, i, 1))) + Int(Mid("0123456789",x,1)) ) ---> Linha 105
Next
hash = cripta
End Function
Já tirei o ASC e aí passa a dar erro no Chr.
Tenho receio de mudar muito, pois esta é uma função de criptografia e já existem muitos registros no banco que estão criptografados.
O que posso fazer?
Obrigado
hargon,
Boa tarde,
Este erro ocorreu no retorno de uma transação da Visanet.
A criptografia para gravação no banco funciona normalmente, nos locais do site tb.
Somente no momento de pegar o TID da transação que está criptografado no banco e descriptografar para mandar para o e-mail do cliente que dá o erro.
[]'s
Simule uma string que faz dar o erro e poste para fazermos alguns testes.
Ué? mais se o erro esta acontecendo na decriptografia por que você postou o code da criptografia?
Patrique,
A função é a mesma. Quando ela pega dados puros, criptografa, quando pega os dados já criptografados do banco, descriptografa.
Não sei maiores detalhes, este site pegamos pronto para administrar.
[]'s
verifique se naun esta usando palavras reservadas...
Isso geralmente acontece porque você usou um VBScript "nome amigável" ,uma constante no local de seu inteiro equivalente
tem que ver qual carácter deu erro
pode fazer isso simplesmente mandando escrever o valor dom MID antes desta linha assim quando der erro será o carácter acima o culpado ai saberá melhor o que houve
Somente no momento de pegar o TID da transação que está criptografado no banco e descriptografar para mandar para o e-mail do cliente que dá o erro.
tenta dar um response.write TID antes , para ver o k esta sendo passado...
Testei o código acima aqui e funcionou perfeitamente, para a palavra hargon.
Talvez o erro seja para uma palavra em especifica. Qual você testou?