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

Web & réseau Delphi Discussion :

Intercepter un formulaire web pour y remplir des champs


Sujet :

Web & réseau Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 53
    Points
    53
    Par défaut Intercepter un formulaire web pour y remplir des champs
    Bonjour ... ma première question ici dans le forum.

    Par l'entremise d'un programme Delphi, comment faire pour remplir automatiquement les champs d'un formulaire web actif sur internet. Par exemple sur cette page http://picsplace.to/ Sans rendre visible cette page à l'utilisateur, j'aimerais pouvoir remplir le champ demandant un nom de fichier et ensuite simuler 'uploader' le fichier à la bonne destination.

    A moins qu'il existe un service web xml connu pour ce genre de manipulation?

    Merci de vos réponses.
    RP

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    He... il doit bien y avoir une façon de faire? Ou peut-être quelqu'un connait-il un service web (xml) semblable (upload d'image chez un hébergeur internet).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    En utilisant un composant Twebbrower et en simulant le comportement de l'utilisateur.

    Fait une recherche dans le forum.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par cpdump
    En utilisant un composant Twebbrower et en simulant le comportement de l'utilisateur.

    Fait une recherche dans le forum.
    Ça pourrait être une possibilité... quoique... trop indirecte et peut-être lente aussi (faudra alors faire afficher la page repliquer dans le twebbrowser)? J'aimerais trouver une façon plus limpide si c'est possible. - Merci ... c'est quand même une piste.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Points : 109
    Points
    109
    Par défaut
    Bonjour à tous,

    J'ai réalisé une appli de ce genre il n'y a pas longtemps.

    Il s'agit pour l'utilisateur d'uploader sur un serveur un fichier trace GPS. L'utilisateur doit notamment fournir quelques renseignements ( nom, massif, etc..)

    Le principe : une form comprenant les zones de renseignements et un composant TidHTTP.

    Lors du clic sur le bouton Envoyer, je vérifie la cohérence des zones de renseignements et si cela colle je déclenche l'envoi des données avec la procédure suivante :

    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
    procedure TFrm_WebUpload.Envoie_Donnees;
     
    var
      MultiPartFormDataStream: TIdMultiPartFormDataStream;
      Res : string;
     
    begin
      MultiPartFormDataStream := TIdMultiPartFormDataStream.Create;
      try
        Frm_WebUpload.Cursor := crHourGlass;
        // Envoie les champs
        MultiPartFormDataStream.AddFormField('decollage',ansitoutf8(Ed_Decollage.Text));
        MultiPartFormDataStream.AddFormField('pilote',ansitoutf8(Ed_Pilote.Text));
        MultiPartFormDataStream.AddFormField('departement',ansitoutf8(Ed_Departement.Text));
        MultiPartFormDataStream.AddFormField('region',ansitoutf8(Ed_Region.Text));
        MultiPartFormDataStream.AddFormField('massif',ansitoutf8(Ed_Massif.Text));
        MultiPartFormDataStream.AddFormField('voile',ansitoutf8(Ed_Voile.Text));
        MultiPartFormDataStream.AddFormField('fichier',ansitoutf8(Ed_Fichier.Text));
        MultiPartFormDataStream.AddFormField('typevol',ansitoutf8(Ed_TypeVol.Text));
        MultiPartFormDataStream.AddFormField('comment',ansitoutf8(comment.Text));
        //"Joint" le fichier
        MultiPartFormDataStream.AddFile('fichier', FicName, 'multipart/form-data');
        MultiPartFormDataStream.Position := 0;
        Res := IdHTTP1.Post(URLDest, MultiPartFormDataStream);
        Ed_Result.Text    := utf8toAnsi(Res);
        Ed_result.Visible := True;
        // Pour ne pas réappuyer deux fois...
        BButOK.Enabled    := False;
      finally
        MultiPartFormDataStream.Free;
        Frm_WebUpload.Cursor := crDefault;
      end;
    end;
    URLDest est une constante contenant l'adresse de la page formulaire
    FicName est le nom du fichier trace avec le path sur la machine de l'utilisateur.

    C'est complètement transparent et ça marche nickel.

    Ce qu'il faut c'est connaitre le nom du ou des champs attendus dans la page web pour le ou les passer correctement avec l'instruction
    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiPartFormDataStream.AddFormField('NomduChamp'....
    Dans ton cas s'il s'agit juste d'uploader, n'utilises que l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MultiPartFormDataStream.AddFile(...
    Il faut juste connaitre le nom de la variable qui reçoit. Dans mon cas c'est fichier.

    Voili, si ce n'est pas clair n'hésite pas...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    Ah sincèrement merci .. j'examine le code et reviens ....

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    .. j'y suis toujours.... a plus.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je suis tombé sur ce code et j'ai essayé mais je tombe sur le message :
    HTTP/1.1 405 Methode Not Allowed !

    Bon j'ai trouvé cette erreur sur le net mais je n'ai pas compris comment la régler.
    Quelqu'un aurait une idée ?

    Je suis en D7, le bout de formulaire que je teste c'est :
    Code html : 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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                           "http://www.w3.org/TR/REC-html40/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Mon formulaire.</title>
    </head>
    <body>
    <form name='formulaire' action='traitement.php' method='post'>
    <table>
    <th>Formulaire de contact</th>
    <tr><td>Votre nom : </td><td><input name='nom' type='text' size='50'></td></tr>
    <tr><td>Votre pr&eacute;nom : </td><td><input name='prenom' type='text' size='50'></td></tr>
    <tr><td>Votre email</td><td><input name='email' type='text' size='50'></td></tr>
    <tr><td>Le motif de votre message</td><td><input name='sujet' type='radio' value='renseignement'>Renseignement<br>
    <input name='sujet' type='radio' value='probleme technique'> Probleme technique<br>
    <input name='sujet' type='radio' value='partenariat'>Partenariat</td></tr>
    <tr><td>Votre message</td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>
    <tr><td><input name='annuler' type='reset' value='Annuler'></td><td>
    <input name='soumettre' type='submit' value='Envoyer'></td></tr>
    </table>
    </form>
    </body>
    </html>

    et
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $texte="<html>";
    $texte.="$prenom $nom <$email> $sujet $texte";
    $texte.="</html>"; 
    $nomfic="<html>";
    $nomfic.="$nom.txt";
    $nomfic.="</html>"; 
    echo $texte;
    file_put_contents("nouveau_script_php.txt",$texte); 
    ?>

    Sinon je suis preneur de toutes autres méthodes pour renseigner un formulaire en auto

    D'avance merci !

Discussions similaires

  1. HtmlUnit : remplir des champs non inclus dans un formulaire
    Par lahmar.abdel1 dans le forum Général Java
    Réponses: 0
    Dernier message: 12/05/2009, 11h31
  2. Fonction affich pour remplir des champs de tableau
    Par bc.dumon dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 17/04/2008, 08h56
  3. Web browser (Remplir des champs)
    Par dekidec dans le forum C#
    Réponses: 4
    Dernier message: 20/02/2008, 11h17
  4. Problème d'AS2 pour lire un xml et remplir des champs textes
    Par audrey.b dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 16/10/2007, 11h08
  5. Réponses: 38
    Dernier message: 22/03/2007, 16h15

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