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

C++ Discussion :

Requette HTTP POST


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut Requette HTTP POST
    Salut, j'ai un probleme avec ma requette HTTP POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	sprintf(Buffer,"POST http://www.ece.fr/~sroche/mount/ident.php HTTP/1.1\r\n"
    				   "Host: www.ece.fr\r\n"
    				   "Content-Type: application/x-www-form-urlencoded\r\n"
    				   "Content-Length: %d\r\n" // taille des données qui suivent
    				   "\r\n"
    				   "login=%s\r\n"
    			       "mname=%s\r\n"
    				   "\r\n", iReqSize, szLogin, szMachineName);
    Quand je récupere les variable login et mname, je m'apercois que l'intégralité du contenu se trouve dans "login"

    Ainsi quand je récupere les données $test = $_POST['login'] j'obtiens
    "le_login
    mname=le_nom" par exemple

    Pourvez me dire pk?

    Merci

  2. #2
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    sprintf c'est du C il me semble...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut lol
    oui c aussi du C++ puisque le C++ est une sur couche du C.

    J'utilise les classes aussi...

  4. #4
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    J'utilise les classes aussi...
    Quelles classes?
    oui c aussi du C++ puisque le C++ est une sur couche du C.
    Si on veut

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    C++ n'est pas une surcouche au C.

    Bien que cela soit comme une extension du C, certains mots clés du c++ n'ont pas la même signification que le C, la gestion des structures est réorganisée, et ainsi de suite.


    Concernant ton probleme, tu devrais plutot relire le RFC concernant le protocole HTTP
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Points : 161
    Points
    161
    Par défaut
    A priori, ça ne fait pas parti du protocol HTTP (je n'ai rien vu à ce sujet dans la RFC du HTTP).

    Il faut chercher du coté de x-www-form-urlencoded. Les spécifications du HTML sur le w3c (http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.1) donnent ceci :
    The form-urlencoded Media Type

    The default encoding for all forms is `application/x-www-form-urlencoded'. A form data set is represented in this media type as follows:

    1. The form field names and values are escaped: space characters are replaced by `+', and then reserved characters are escaped as per [URL]; that is, non-alphanumeric characters are replaced by `%HH', a percent sign and two hexadecimal digits representing the ASCII code of the character. Line breaks, as in multi-line text field values, are represented as CR LF pairs, i.e. `%0D%0A'.
    2. The fields are listed in the order they appear in the document with the name separated from the value by `=' and the pairs separated from each other by `&'. Fields with null values may be omitted. In particular, unselected radio buttons and checkboxes should not appear in the encoded data, but hidden fields with VALUE attributes present should. (26)
    Il faut donc remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "login=%s\r\n"
    "mname=%s\r\n"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ""login=%s"
    "&mname=%s"

    En passant, si tu veux faire la même chose plus dans le stype C++, à mon avis tu devrais t'orienter vers les std::stringstream. En tout cas le fond de ta question n'avait rien à voir avec le C++

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Merci bcp!! Ca marche!!!

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Volune
    En passant, si tu veux faire la même chose plus dans le stype C++, à mon avis tu devrais t'orienter vers les std::stringstream. En tout cas le fond de ta question n'avait rien à voir avec le C++
    Ou utiliser std::ostrstream, qui est plus particulièrement destiné a ton utilisation...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    std::ostrstream ostr;
     
    ostr << "POST http://www.ece.fr/~sroche/mount/ident.php HTTP/1.1\r\n";
          << "Host: www.ece.fr\r\n";
          << "Content-Type: application/x-www-form-urlencoded\r\n"
          << "Content-Length: %d\r\n" << "\r\n"; 
          <<  "login=" << szLogin << "\r\n"
          << "mname=" << szMachineName << "\r\n" 
     
    char *szBuffer = new char[ostr.pcount()];
    strncpy(szBuffer, ostr.str(), ostr.pcount());
     
    /* .... */
     
    delete[] szBuffer;

Discussions similaires

  1. [http] perte de requette http après redirection
    Par okoax dans le forum Serveurs (Apache, IIS,...)
    Réponses: 6
    Dernier message: 05/05/2006, 10h31
  2. Socket, Requette http
    Par zenux dans le forum C++
    Réponses: 19
    Dernier message: 02/03/2006, 22h05
  3. HTTP POST
    Par jmjmjm dans le forum Web & réseau
    Réponses: 17
    Dernier message: 12/11/2005, 22h05
  4. [Servlet] requette http et getParameterValues()
    Par Flobel dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 07/01/2005, 11h18
  5. [HTTP][POST] passassion de variable
    Par Yodalf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 04/09/2004, 21h09

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