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 :

Remplir un formulaire HTML contenant plusieurs Submit


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut Remplir un formulaire HTML contenant plusieurs Submit
    Bonjour,

    Je voudrais pouvoir envoyer des messages automatiquement sur un forum de type phpBB. J'aimerais donc remplir ce formulaire grâce au composant IdHttp :
    Code Html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form id="postform" method="post" action="http://unforum/posting.php?mode=reply&amp;f=32&amp;sid=661df58b6ec0ab420cd2fb2b5371baf5&amp;t=569">
     
    	<textarea name="message" id="message" rows="15" cols="76" tabindex="3" class="inputbox">test</textarea>
    	<input type="submit" accesskey="k" tabindex="8" name="save" value="Sauvegarder" class="button2" />&nbsp;
    	<input type="submit" accesskey="s" tabindex="6" name="post" value="Envoyer" class="button11" />&nbsp;
     
    	<input type="hidden" name="creation_time" value="1309892618" />
    	<input type="hidden" name="form_token" value="5831e88c77ebfcd9c6c1ed3ceb5e452215a60382" />
    </form>

    J'ai utilisé ce code, qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var
      Mpfd : TIdMultiPartFormDataStream;
    begin
      Mpfd := TIdMultiPartFormDataStream.create;
      try
        Mpfd.AddFormField('message','Test');
        Mpfd.AddFormField('creation_time','1309892618');
        Mpfd.AddFormField('form_token','5831e88c77ebfcd9c6c1ed3ceb5e452215a60382');
     
        Memo1.Text := UTF8Decode( IdHttp1.Post('http://unforum/posting.php?mode=reply&amp;f=32&amp;sid=661df58b6ec0ab420cd2fb2b5371baf5&amp;t=569',Mpfd));
      finally
        Mpfd.Free;
      end;
    end;
    Le soucis est que j'ai 2 "submit" dans le formulaire, et je ne sais pas comment envoyer le nom du bouton sur lequel j'aimerais appuyer ... Quel parametre dois je ajouter à ma variable Mpfd, ou a mon URL, pour que le serveur sache le bouton enfoncé ?

    Merci d'avance,

    Mick605

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    il suffit d'ajouter sa valeur (name="post" value="Envoyer") par un AddFormField
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Edit :
    Merci pour ta réponse rapide. En effet, il fallait mettre cette ligne, mais ce n'était pas la seule erreur ...
    Voila une preuve que je suis débutant en HTML ... Dans l'URL, il faut remplacer les &amp; par & ... J'ai aussi modifié le HandleRedirect a true.

    Maintenant, je n'ai pas d'erreur, mais je reviens sur l'index du forum, sans envoyer le message ... Comment cela ce fait-il ?

    Edit 2 :
    Je viens de voir qu'un utilisateur "Indy Library [Bot]" est logué sur le forum ... Comment puis-je faire pour utiliser mes identifiants pour la connexion et l'envoi du message ?

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Edit :
    Merci pour ta réponse rapide. En effet, il fallait mettre cette ligne, mais ce n'était pas la seule erreur ...
    Voila une preuve que je suis débutant en HTML ... Dans l'URL, il faut remplacer les &amp; par & ... J'ai aussi modifié le HandleRedirect a true.

    Maintenant, je n'ai pas d'erreur, mais je reviens sur l'index du forum, sans envoyer le message ... Comment cela ce fait-il ?

    Edit 2 :
    Je viens de voir qu'un utilisateur "Indy Library [Bot]" est logué sur le forum ... Comment puis-je faire pour utiliser mes identifiants pour la connexion et l'envoi du message ?
    le sujet est largement abordé sur le forum, il faut passer par la page de login et récupérer le cookie qui identifie ta session.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    le sujet est largement abordé sur le forum, il faut passer par la page de login et récupérer le cookie qui identifie ta session.
    Merci. J'ai résolu mon problème. Voici le code utilisé :
    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
    var
      Mpfd : TIdMultiPartFormDataStream;
      i : integer;
    begin
      IdHTTP1.CookieManager:= IdCookieManager1;
     
        //Page du Login et Mot de passe
      Mpfd := TIdMultiPartFormDataStream.Create;
      try
        Mpfd.AddFormField('username', 'mick605');
        Mpfd.AddFormField('password', '************');
        Mpfd.AddFormField('redirect', 'index.php');
        Mpfd.AddFormField('sid', '65dde436f78e47d9941d1a0af0b14fcf');
        Mpfd.AddFormField('login', 'Connexion');
     
        IdHTTP1.Post('http://forum/ucp.php?mode=login', Mpfd);
        //Connexion et enregistrement du cookie
      finally
        Mpfd.Free;
      end;
     
        //Page "répondre au message"
      Mpfd := TIdMultiPartFormDataStream.Create;
      try
        Mpfd.AddFormField('message','Test');
        Mpfd.AddFormField('creation_time','1310030733');
        Mpfd.AddFormField('form_token','471b0ccb3adf71bc5ffea6d271192d20bd83a6a7');
        Mpfd.AddFormField('post','Envoyer');
     
        Memo1.Text:=AnsiReplaceStr(Utf8ToAnsi(IdHttp1.Post('http://forum/posting.php?mode=reply&f=32&sid=a643047b6547868dbc1d4e57b1325236&t=569',Mpfd)),#10,#13#10);
     
      finally
        Mpfd.Free;
      end;
    Pour info, lors d'une recherche sur le forum, on trouve pas grand chose à ce sujet ... Je suis tombé sur ca qui n'est pas de grande utilité ...

    Le code ci dessus est un code trouvé sur un autre site ...

    Bref, merci en tout cas !

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 108
    Par défaut
    Mille mercis pour ce code qui m'aide E N O R M E M E N T

    Beny

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir un formulaire html (URL) via VB.NET
    Par tobib dans le forum VB.NET
    Réponses: 0
    Dernier message: 21/11/2010, 07h23
  2. remplir un formulaire html par delphi
    Par lassmust dans le forum Web & réseau
    Réponses: 6
    Dernier message: 24/04/2006, 20h25
  3. Formulaire avec plusieurs submit !
    Par alfigor dans le forum Langage
    Réponses: 6
    Dernier message: 21/04/2006, 12h09
  4. Formulaire avec plusieurs submit -> Récupération
    Par masseur dans le forum Langage
    Réponses: 14
    Dernier message: 30/03/2006, 08h17
  5. plusieurs submits differents dans un formulaire...
    Par nicdes dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/12/2005, 14h46

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