Remplire un formulaire PHP sous Delphi

Remplire un formulaire PHP sous Delphi - Delphi/Pascal - Programmation

Marsh Posté le 03-07-2003 à 17:00:17    

Je voudrais que une de mes applications soit capable de remplire un formulaire sur n'importe quel site en PHP. Quel methode me conseilliez vous svp ?
 
Important : ne pas utiliser la souris. (car ca je sais faire, ca pourrait etre la solution de dernier recour)
 
Merci :p

Reply

Marsh Posté le 03-07-2003 à 17:00:17   

Reply

Marsh Posté le 03-07-2003 à 17:31:12    

remplir un formulaire qui est affiché dans le browser de l'utilisateur (IE ou autre), ou bien soumettre des données à un serveur sans que l'utilisateur ne voit la page web du formulaire ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-07-2003 à 18:39:55    

antp a écrit :

remplir un formulaire qui est affiché dans le browser de l'utilisateur (IE ou autre), ou bien soumettre des données à un serveur sans que l'utilisateur ne voit la page web du formulaire ?


 
Les 2, pourquoi pas :p visible ou pas, ce n'est pas un probleme, je prendrais le plus facile :p
 
Mc :p

Reply

Marsh Posté le 03-07-2003 à 18:52:05    

Si c'est juste pour soumettre des données à un serveur tu peux faire un GET ou un POST avec le composant TIdHTTP par exemple (Indy) ou avec son équivalent dans les composants ICS.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-07-2003 à 17:51:29    

Bonjour ce sujet m'intéresse aussi.
 
J'ai essayé la méthode d'ANTP et ça marche bien.
En complément j'ai trouvé cet exemple sur ce site : http://www.experts-exchange.com/Pr [...] 35820.html
 
Maintenant j'aimerais envoyer un fichier.
 
Est-il possible de la même façon d'en envoyer ?
 
Merci d'avance.
 
:jap:


Message édité par AZorbas le 23-07-2003 à 17:52:36

---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 23-07-2003 à 18:20:37    

AZorbas a écrit :

Bonjour ce sujet m'intéresse aussi.
 
J'ai essayé la méthode d'ANTP et ça marche bien.
En complément j'ai trouvé cet exemple sur ce site : http://www.experts-exchange.com/Pr [...] 35820.html
 
Maintenant j'aimerais envoyer un fichier.
 
Est-il possible de la même façon d'en envoyer ?
 
Merci d'avance.
 
:jap:


 
Ben tu envoie le contenu du fichier et zopla.

Reply

Marsh Posté le 24-07-2003 à 11:16:10    

merci je vais tester cela!
 
:jap:


---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 26-07-2003 à 18:28:51    

J'arrive pas à envoyer des fichiers via Indy :cry:  
 
 
J'ai trouvé des infos sur experts-exchange mais ça marche pas trop :(
 
Des infos ?
 
 :jap:  :jap:  :jap:
 
EDIT : j'aimerais envoyer des fichiers ET remplir des champs en même temps.


Message édité par AZorbas le 26-07-2003 à 18:50:23

---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 27-07-2003 à 12:01:03    

personne ?
 
 :jap:  :jap:


---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 27-07-2003 à 13:03:26    

commence déjà par donner le code que tu utilises pour que l'on cerne le problème

Reply

Marsh Posté le 27-07-2003 à 13:03:26   

Reply

Marsh Posté le 27-07-2003 à 13:51:59    

voilà pour remplir un formulaire et le traiter par mon serveur j'utilise ça et ça marche.
 
Maintenant tetedeiench me dit que pour un fichier je dois faire pareil. Le prob c'est que je sais pas comment faire pour envoyer un fichier ET remplir les champs comme pour un formulaire multipart/form-data.
 

Code :
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. aStream: TMemoryStream;
  4. Params: TStringStream;
  5. begin
  6. aStream := TMemoryStream.create;
  7. Params := TStringStream.create('');
  8. Params.WriteString(URLEncode('comment=' + 'test' + '&'));
  9. Params.WriteString(URLEncode(nom=' + 'test'));
  10. IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
  11. IdHTTP1.Post('http://localhost/page.php', Params, aStream);
  12. end;


 
 
 
Sinon j'avais trouvé cela (http://beta.experts-exchange.com/P [...] 50661.html) :
 

Code :
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. Request       : TMemoryStream;
  4. FileData      : TMemoryStream;
  5. Response      : TStringStream;
  6. tempArray     : array[0..10000] of char;
  7. tempString    : String;
  8. strFileSize   : String;
  9. InFile        : String;
  10. const
  11. NewLine = chr(13) + chr(10);
  12. begin
  13. Screen.Cursor := crHourGlass;
  14. InFile := 'c:\test.zip';
  15. // Set the properties for HTTP
  16. HTTP.ProtocolVersion                := pv1_1;
  17. HTTP.Request.Username               := '';
  18. HTTP.Request.Password               := '';
  19. HTTP.Request.ProxyServer            := '';
  20. HTTP.Request.ProxyPort              := 80;
  21. http.Request.ContentEncoding        := 'multipart/form-data';
  22. try
  23.    // create streams
  24.    Response  := TStringStream.Create('');
  25.    Request   := TMemoryStream.Create;
  26.    FileData  := TMemoryStream.Create;
  27.    // load file data
  28.    FileData.LoadFromFile( InFile );
  29.    FileData.Seek( 0, soFromBeginning );
  30.    // copy form data
  31.    TempString := '';
  32.    TempString := TempString + '-----------------------------7d18914904ee' + NewLine;
  33.    TempString := TempString + 'Content-Disposition: form-data; name="UserName"' + NewLine;
  34.    TempString := TempString + '' + NewLine;
  35.    TempString := TempString + edUserName.text + NewLine;
  36.    TempString := TempString + '-----------------------------7d18914904ee' + NewLine;
  37.    TempString := TempString + 'Content-Disposition: form-data; name="PassWord"' + NewLine;
  38.    TempString := TempString + '' + NewLine;
  39.    TempString := TempString + edPassWord.text + NewLine;
  40.    TempString := TempString + '-----------------------------7d18914904ee' + NewLine;
  41.    TempString := TempString + 'Content-Disposition: form-data; name="FileSize"' + NewLine;
  42.    TempString := TempString + '' + NewLine;
  43.    TempString := TempString + '1234567' + NewLine;
  44.    TempString := TempString + '-----------------------------7d18914904ee' + NewLine;
  45.    TempString := TempString + 'Content-Disposition: form-data; name="DataFileName"; filename="' + InFile + '"' + NewLine;
  46.    TempString := TempString + 'Content-Type: application/octet-stream' + NewLine;
  47.    TempString := TempString + '' + NewLine;
  48.    // Add data to post
  49.    FillChar( temparray, SizeOf( temparray ), #0 );
  50.    strpcopy( temparray, tempstring );
  51.    Request.Write( temparray, length(tempstring) );
  52.    Request.Seek( 0, soFromEnd );
  53.    Request.CopyFrom( FileData, FileData.Size );
  54.    // copy form data
  55.    TempString := '';
  56.    TempString := TempString + '' + NewLine;
  57.    TempString := TempString + '-----------------------------7d18914904ee' + NewLine;
  58.    TempString := TempString + 'Content-Disposition: form-data; name="Submit"' + NewLine;
  59.    TempString := TempString + '' + NewLine;
  60.    TempString := TempString + 'Submit' + NewLine;
  61.    TempString := TempString + '-----------------------------7d18914904ee--'  + NewLine;
  62.    // Add data to post
  63.    FillChar( temparray, SizeOf( temparray ), #0 );
  64.    strpcopy( temparray, tempstring );
  65.    Request.Write( temparray, length(tempstring) );
  66.    // post file
  67.    try
  68.      HTTP.Post( edUrl.Text, Request, Response);
  69.    except
  70.      showmessage( "Failed!" )
  71.    end;
  72.    // write out debug text
  73.    memo1.lines.Add('===[TForm1.Post - Response.DataString]=================');
  74.    memo1.Lines.add( Response.DataString );
  75. finally
  76.    Response.Free;
  77.    Request.Free;
  78.    FileData.Free;
  79.    Screen.Cursor := crDefault;
  80. end;
  81. end;


 
Mais mon formulaire ne semble pas comprendre ce qu'on lui envoit.
 
 
Voilà j'espère avoir été assez clair.
 
Est-il possible d'envoyer un fichier aussi "facilement" que la première méthode ?
 
Merci d'avance !
 
 :jap:  :jap:  :jap:


Message édité par AZorbas le 27-07-2003 à 13:55:53

---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed