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 :

Remplir un formulaire automatiquement


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut Remplir un formulaire automatiquement
    Bonjour,
    je souhaite remplir un formulaire via un programme en C.
    Puis récupérer le code source de la page apres l'envoie des données par formulaire.Ex. : Envoyer "php" sur google.fr et récupérer la premiere page des résultats pour la recherche "php".
    J'ai pensé à Curl, mais je ne vois pas quelles fonctions utiliser...

    J'ai réussi il y a quelques mois à le faire en php, mais la je souhaite vraiment le faire en C, s'il vous plait aider moi.
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     
    #include <string.h>
     
    #include <curl/curl.h>
    #include <curl/types.h>
    #include <curl/easy.h>
     
    int main(int argc, char *argv[])
    {
    CURL *curl;
    CURLcode res;
     
     struct curl_httppost *formpost=NULL;
     struct curl_httppost *lastptr=NULL;
     struct curl_slist *headerlist=NULL;
     static const char buf[] = "Expect:";
     
     curl_global_init(CURL_GLOBAL_ALL);
     
     
     
        /* Fill in the filename field */
        curl_formadd(&formpost,
                    &lastptr,
                    CURLFORM_COPYNAME, "q",
                 CURLFORM_COPYCONTENTS, "salut",
                    CURLFORM_END);
     
     
       /* Fill in the submit field too, even if this is rarely needed */
        curl_formadd(&formpost,
                     &lastptr,
                     CURLFORM_COPYNAME, "btnG",
                     CURLFORM_COPYCONTENTS, "submit",
                     CURLFORM_END);
     
          curl = curl_easy_init();
       /* initalize custom header list (stating that Expect: 100-continue is not
           wanted */
        headerlist = curl_slist_append(headerlist, buf);
        if(curl) {
          /* what URL that receives this POST */
          curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.fr");
         if ( (argc == 2) && (!strcmp(argv[1], "noexpectheader")) )
           /* only disable 100-continue header if explicitly requested */
           curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
         curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
          res = curl_easy_perform(curl);
          printf("%s\n", res);
     
          /* always cleanup */
          curl_easy_cleanup(curl);
     
          /* then cleanup the formpost chain */
          curl_formfree(formpost);
    /* free slist */
     curl_slist_free_all (headerlist);
     }
     system("PAUSE");
     return 0;
     }
    ce code ne marche malheureusement pas, quelle variable me permettrait de récupérer le code source apres l'envoie des données ??

    Merci d'avances amis développeurs,

    Lapras

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par lapras123 Voir le message
    ce code ne marche malheureusement pas, quelle variable me permettrait de récupérer le code source apres l'envoie des données ??
    Pour ce qui est du C, il faut déjà corriger ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `main':
    main.c:50: warning: format argument is not a pointer (arg 2)
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 7 seconds)
    0 errors, 1 warnings
    Si ton compilateur ne dit rien, c'est qu'il est mal réglé :

    http://emmanuel-delahaye.developpez....tm#cfg_compilo

    Pour le reste (conception) , il faudrait être une spécialiste du HTTP et de libcurl, ce que je ne suis pas. Je rappelle qu'un programmeur n'a pas pour vocation d'être omniscient. La programmation web est une activité informatique parmi d'autres...

    Le suggère quand même l'usage de 'POST', ce que tu sembles avoir fait. Détails dans le doc de libcurl et dans la norme HTTP.

    http://www.iprelax.fr/http/1945tm.php
    http://curl.haxx.se/docs/

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    Voila j'ai réglé, mais ils ne mettent que :
    "appuyer pour une touche pour continuer..."
    Le code récupére il bien le code source ?
    Il envoie bien ma requete à google ?

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par lapras123 Voir le message
    Voila j'ai réglé, mais ils ne mettent que :
    "appuyer pour une touche pour continuer..."
    Le code récupére il bien le code source ?
    Il envoie bien ma requete à google ?
    En tout cas, il s'est connecté et j'ai reçu ça:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
     
    <html><head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>501 Not Implemented</title>
    <style><!--
    body {font-family: arial,sans-serif}
    div.nav {margin-top: 1ex}
    div.nav A {font-size: 10pt; font-family: arial,sans-serif}
    span.nav {font-size: 10pt; font-family: arial,sans-serif; font-weight: bold}
    div.nav A,span.big {font-size: 12pt; color: #0000cc}
    div.nav A {font-size: 10pt; color: black}
    A.l:link {color: #6f6f6f}
    A.u:link {color: green}
    //--></style>
    <script><!--
    var rc=501;
    //-->
    </script>
    </head>
    <body text=#000000 bgcolor=#ffffff>
    <table border=0 cellpadding=2 cellspacing=0 width=100%><tr><td rowspan=3 width=1
    % nowrap>
    <b><font face=times color=#0039b6 size=10>G</font><font face=times color=#c41200
     size=10>o</font><font face=times color=#f3c518 size=10>o</font><font face=times
     color=#0039b6 size=10>g</font><font face=times color=#30a72f size=10>l</font><f
    ont face=times color=#c41200 size=10>e</font>&nbsp;&nbsp;</b>
    <td>&nbsp;</td></tr>
    <tr><td bgcolor=#3366cc><font face=arial,sans-serif color=#ffffff><b>Error</b></
    td></tr>
    <tr><td>&nbsp;</td></tr></table>
    <blockquote>
    <H1>Not Implemented</H1>
    The server is unable to process your request.
     
    <p>
    </blockquote>
    <table width=100% cellpadding=0 cellspacing=0><tr><td bgcolor=#3366cc><img alt="
    " width=1 height=4></td></tr></table>
    </body></html>
    0
    Appuyez sur une touche pour continuer...
    J'ai collé ça dans un .html, et ça donne :

    http://delahaye.emmanuel.free.fr/images/lapras123.html

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    je ne comprends pas pourquoi il réagit comme ca le programme.
    Connais-tu les fonctions de cURL ?

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par lapras123 Voir le message
    je ne comprends pas pourquoi il réagit comme ca le programme.
    Connais-tu les fonctions de cURL ?
    Je te l'ai déjà dit, non. Il y a un forum "Développement Réseaux" sur ce site ...

Discussions similaires

  1. Remplir formulaire automatique
    Par manworms2 dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/04/2012, 16h11
  2. Réponses: 1
    Dernier message: 06/05/2009, 11h18
  3. Remplir un formulaire automatiquement
    Par Skangell dans le forum IHM
    Réponses: 20
    Dernier message: 27/06/2008, 09h33
  4. Remplir un formulaire et se loguer automatiquement
    Par Enhide dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/03/2008, 10h50
  5. Réponses: 14
    Dernier message: 27/10/2006, 23h15

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