IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Problème d'encodage lors de l'envoi d'un formulaire (HTTPEnvoieFormulaire) [WD16]


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème d'encodage lors de l'envoi d'un formulaire (HTTPEnvoieFormulaire)
    Bonjour à tous,

    J'ai une petite question, qui je pense est bête, mais je ne trouve pas la solution sur internet.

    J'envoie tout simplement en httpPost un formulaire dont certains paramètres contiennent des caractères spéciaux.

    Dans l'exemple suivant, j'ai enlevé l'url pour raison de confidentialité, mais il est représentatif de mon code.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HTTPCréeFormulaire(sNomFormulaireMessage)
    HTTPAjouteParamètre(sNomFormulaireMessage,"_session_id",sSessionID)
    HTTPEnvoieFormulaire(sNomFormulaireMessage,"https://toto.com/tata",httpPost,"","","multipart/form-data")
    Lorsque je regarde avec Fiddler (sniffer reseau) de la requête envoyée, je me retrouve avec &%5Fsession%5Fid au lieu de &_session_id.

    Pensez vous que l'encodage est désactivable, ou contournable?

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Je viens de faire un essai.

    Avec test.php défini comme suit :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    var_dump($_POST);
    var_dump($_POST['test']);

    Avec le code Windev suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sNomFormulaireMessage est une chaîne = "form"
     
    HTTPCréeFormulaire(sNomFormulaireMessage)
    HTTPAjouteParamètre(sNomFormulaireMessage, "test", "coucou")
    SI PAS HTTPEnvoieFormulaire(sNomFormulaireMessage, "http://localhost/test.php") ALORS
        Info(ErreurInfo())
    FIN
    soit res = HTTPDonneRésultat(httpRésultat)
     
     
    fSauveTexte("g:\temp\test.html", res)
    Le résultat, contenu dans le fichier g:\temp\test.html, est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array(size=1)
      'test' => string 'coucou' (length=6)
     string'coucou'(length=6)
    ce qui me semble tout à fait conforme.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 30
    Points : 37
    Points
    37
    Par défaut Il faut tester les caractères
    @DelphiManiac :

    Bonjour,

    D'accord, tu as testé la chaîne "coucou". Maintenant, teste la chaîne "l'école est finie !".
    Ainsi tu pourra voir quel problème nous avons avec les caractères spéciaux ou du moins hors ASCII

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Le problème des accents, n'est pas lié à Windev (pour une fois que ce n'est pas la faute de windev ^^), mais à l'encodage des caractères. Le plus simple est de passé en UTF-8.

    Dans le code HTML : <meta charset="UTF-8">
    Dans le code Windev : HTTPAjouteParamètre(sNomFormulaireMessage, "test", ChaîneVersUTF8("l'école est finie !"))

    En sortie le fichier c:\temp\test.html est encodé en UTF-8 et contient bien les accents visualisable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html><html lang="fr">
      <head>
        <meta charset="UTF-8">
        <title></title>
        <meta name="description" content="">
      </head>
    <body>
    <?php
    echo $_POST['test'];
    ?>
    </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sNomFormulaireMessage est une chaîne = "form"
     
     
    HTTPCréeFormulaire(sNomFormulaireMessage)
    HTTPAjouteParamètre(sNomFormulaireMessage, "test", ChaîneVersUTF8("l'école est finie !"))
    SI PAS HTTPEnvoieFormulaire(sNomFormulaireMessage, "http://localhost/test.php") ALORS
        Info(ErreurInfo())
    FIN
     
    res est une chaîne = HTTPDonneRésultat(httpRésultat)
     
     
    fSauveTexte("c:\temp\test.html", res)
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 30
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Tout à fait, j'ai trouvé la même solution par le suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :m_sMessage = ChaîneVersUTF8(sMessage)
    Et là, plus de problème !

    Excellente journée à vous tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] problème lors de l'envoi de mon formulaire
    Par cdevl32 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 04/03/2009, 18h19
  2. [XML] Problème d'encodage lors de la lecture xml
    Par adilou1981 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 12/09/2008, 14h07
  3. Problème d'encodage lors d'une recherche
    Par cysedbs dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2007, 19h53
  4. Problèmes d'encodage lors de l'envoi d'un mail
    Par NeqO55 dans le forum Linux
    Réponses: 1
    Dernier message: 31/08/2007, 17h17
  5. problème lors de l'envoi d'un formulaire
    Par fk04 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/04/2007, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo