Encoder des chaînes en base64 pour POST?

allezencoreunpseudo Messages postés 2 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 19 janvier 2008 - 18 janv. 2008 à 16:26
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 19 janv. 2008 à 01:14
Bonjour

J'ai besoin d'envoyer des données à un script PHP via la méthode POST.

Problème, on doit pouvoir utiliser tous les caractères autorisés, c.a.d. notamment les espaces, les signes accentués comme é, ç, etc.

J'ai trouvé du code pour VB5/6 pour encoder une chaîne en base64, mais il ne gère pas les caractères accentués et utilise le caractère "=" qui est légal en base64, mais pas dans un formulaire web puisqu'il sert à indiquer la valeur d'une variable a=b.

Quelqu'un connait un code source connu et validé pour faire ça et que je peux juste copier/coller dans un projet VB5/VB6, et éviter une dépendance?

Merci.

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 janv. 2008 à 20:26
Salut
Le codage Base64 n'a pas de variante (avec ou sans =).
Je pense que tu dois essayer de faire du POST en ligne de commande, d'où ton problème.
Essaie de regarder <cette source> de plus près, elle te donnera surement des idées.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 janv. 2008 à 22:28
vu sur Codyx.org
http://www.codyx.org/snippet_chaine-vers-base-64-vice-versa_62.aspx#1651

Public Function Base64Enc(ByRef vxbData() As Byte) As String
With CreateObject("MSXML.DOMDocument").createElement("Base64")
.dataType = "bin.base64"
.nodeTypedValue = vxbData
Base64Enc = .Text
End With
End Function

Public Function Base64Dec(ByRef vsData As String) As Byte()
With CreateObject("MSXML.DOMDocument").createElement("Base64")
.dataType = "bin.base64"
.Text = vsData
Base64Dec = .nodeTypedValue
End With
End Function
0
allezencoreunpseudo Messages postés 2 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 19 janvier 2008
19 janv. 2008 à 01:12
Jack > Le codage Base64 n'a pas de variante (avec ou sans =).

Je crois pourtant en avoir vu qui incluait ce caractère, mais ça ne posait pas de problème puisque c'était pensé pour être utilisé dans les mails, pas pour POSTer des données à une appli web.

> Essaie de regarder <cette source=""> de plus près, elle te donnera surement des idées.

Justement ce que je voulais. Merci bp.

Renfield > vu sur Codyx.org

Je vais regarder l'usage de MSXML.DOMDocument, et m'assurer avant qu'il est dispo sur W2K/XP/Vista en standard.

Merci.</cette>
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 janv. 2008 à 01:14
si pas standard, tu peux le fournir
sinon, tu as des algo qui le font tout aussi bien...

pour le = c'est un caractère joker en base64
c'est pour completer des flux trop courts...
des fois tu n'en aura pas, des fois 1, d'autres 2 ...
vu que le but est d'avoir un nombre de cractère multiple de 3 (info a confirmer)
0
Rejoignez-nous