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++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    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
    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 �m�rite 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
    Par d�faut
    sprintf c'est du C il me semble...

  3. #3
    Membre confirm�
    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
    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 �m�rite 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
    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 �m�rite
    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
    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

  6. #6
    Membre �prouv�
    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 : 40
    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
    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 confirm�
    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
    Par d�faut
    Merci bcp!! Ca marche!!!

  8. #8
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    31
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 31
    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