Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut Problème avec les CGI et les Cookies.

    Bonjour,

    J'écris un petit site avec une CGI qui interface un programme qui prend un texte en entrée et retourne un texte.

    Mon problème à la base c'est que le texte reçus de Gnat.Cgi.value, n'est pas décodé (on trouve des '+' en place des ' '). Comme la fonction décode, n'est pas disponible dans Gnat.Cgi, je me suis tourné vers Adacgi, mais là un autre problème, impossible de récupérer mon second cookie qui contient une chaîne de 32 caractères.

    Si vous avez un tuyau un conseil, je suis preneur. Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut

    j'utilise Gnat.Cgi pour les cookies, et j'ai piqué url_decode à Adacgi, et je n'ai plus de problème.

    Merci.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut

    Ah non.


    Re-bonjour, je reviens parce que non, url_decode me vire les aussi les caractères '+' de mon texte.

    J'ai voulu essayer Aws.url.decode mais j'ai un problème pour compiler.

    Si quelqu'un avait un tuyau, il me manque un bout de la bibliothèque "aws" le template_parser.

    De l'aide sera la bien venue.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut

    Re-bonjour ou bonsoir, Je viens mettre à jour mes problème sur ce coup.

    A présent il me manque un paquetage, voici le message de compilation :

    # make web_client
    gnatmake src/web_client.adb -D .obj -o bin/web_client -aIsrc/lib -aI/usr/share/ada/adainclude/aws -aI/usr/share/ada/adainclude/templates_parser
    gcc-4.4 -c -Isrc/ -Isrc/lib -I/usr/share/ada/adainclude/aws -I/usr/share/ada/adainclude/templates_parser -I- -o .obj/aws-translator.o /usr/share/ada/adainclude/aws/aws-translator.adb
    aws-translator.adb:24:18: missing body for "Conversion" declared at line 67
    gnatmake: "/usr/share/ada/adainclude/aws/aws-translator.adb" compilation error
    make: *** [web_client] Erreur 4
    #

    Donc, conversion est absent, ou le dénicher,

    J'ai la spec,
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     package Conversion is
    
          function To_String (Data : Stream_Element_Array) return String;
          pragma Inline (To_String);
          --  Convert a Stream_Element_Array to a string                                                                                                                                    
    
          function To_Stream_Element_Array
            (Data : String) return Stream_Element_Array;
          pragma Inline (To_Stream_Element_Array);
          --  Convert a String to a Stream_Element_Array                                                                                                                                    
    
       end Conversion;


    Puis-je l'implémenter moi même ? Non !

  5. #5
    Membre régulier
    Profil pro
    Mathématicien
    Inscrit en
    mars 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien
    Secteur : Finance

    Informations forums :
    Inscription : mars 2012
    Messages : 65
    Points : 91
    Points
    91

    Par défaut

    Citation Envoyé par jovalise Voir le message
    Re-bonjour ou bonsoir, Je viens mettre à jour mes problème sur ce coup.

    A présent il me manque un paquetage, voici le message de compilation :




    Donc, conversion est absent, ou le dénicher,

    J'ai la spec,
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     package Conversion is
    
          function To_String (Data : Stream_Element_Array) return String;
          pragma Inline (To_String);
          --  Convert a Stream_Element_Array to a string                                                                                                                                    
    
          function To_Stream_Element_Array
            (Data : String) return Stream_Element_Array;
          pragma Inline (To_Stream_Element_Array);
          --  Convert a String to a Stream_Element_Array                                                                                                                                    
    
       end Conversion;


    Puis-je l'implémenter moi même ? Non !
    Sûr!
    Je tape directement (sans tester):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function To_String (Data : Stream_Element_Array) return String is
      s: String(Data'Range);
    begin
      for i in Data'Range loop
        s(i):= Character'Val(Data(i));
      end loop;
      return s;
    end To_String;
    Probablement qu'il faut faire aussi une conversion du type de l'indice.

    AMHA on ne devrait jamais avoir à utiliser Stream_Element_Array et juste utiliser les attributs: String'Read(s), String'Write(s).
    Mais bon, parfois on n'a pas le choix...

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut

    Bonjour zerte, merci.


    Tu saurais faire la seconde également parce que j'en ai besoin, mais je connais pas les stream_element ! S'il te plaît quand tu passera si tu as le temps.

    Merci !

  7. #7
    Membre régulier
    Profil pro
    Mathématicien
    Inscrit en
    mars 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien
    Secteur : Finance

    Informations forums :
    Inscription : mars 2012
    Messages : 65
    Points : 91
    Points
    91

    Par défaut

    Citation Envoyé par jovalise Voir le message
    Bonjour zerte, merci.


    Tu saurais faire la seconde également parce que j'en ai besoin, mais je connais pas les stream_element ! S'il te plaît quand tu passera si tu as le temps.

    Merci !
    C'est tout à fait vrai que le nom Stream_Element fait peur.
    En fait il s'agit d'un innocent Byte ou Unsigned_8 (sauf machine très spéciale).
    Bref pour la conversion inverse, c'est quasi la même chose, sauf que tu auras un a(i):= Character'Pos(s(i)); dans la boucle.

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut

    Citation Envoyé par Zerte Voir le message
    C'est tout à fait vrai que le nom Stream_Element fait peur.
    En fait il s'agit d'un innocent Byte ou Unsigned_8 (sauf machine très spéciale).
    Bref pour la conversion inverse, c'est quasi la même chose, sauf que tu auras un a(i):= Character'Pos(s(i)); dans la boucle.
    Ah Ok, je vais tester tout ça dans la journée.
    Merci beaucoup Zerte, je vous tiens au courant.

    Le site est , manque un bon appel à la bonne fonction pour décoder le texte. Pour le moment, ça mappe les '+' en ' ' (espace).

    Je compte sur aws.url.decode.

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : juin 2006
    Messages : 900
    Points : 374
    Points
    374

    Par défaut

    Hi !

    j'ai réussi à compiler, l'appel à aws.url.decode se passe bien, mais ne décode pas comme je le souhaite.

    je cherche un moyen de conserver les '+' de mon texte.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •