Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1843 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  script remplissage formulaires html & POST DATA

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script remplissage formulaires html & POST DATA

n°1633379
sputnick
bip...bip...bip...bip...bi...b
Posté le 29-10-2007 à 23:57:17  profilanswer
 

Salut,
 
j'essaye tant bien que mal d'uploader automatiquement des photos sur ce site :
http://www.easy-upload.net
ou bien n'importe lequel genre flickr, imageshack etc...
Le probleme est simple, gerer le POST DATA et autres remplissage de formulaire.
Voici une ébauche de script non valable, si quelqu'un de plus qualifié que moi sur perl peux corriger, je pense que ça peux etre très interessant ( et formateur ).
( je cherche un truc tout à fait basique qui ne fait qu'uploader betement des fichiers en récuperant l'URL à la fin. )
J'obtient seulement : Can't POST http://www.easy-upload.net/:  at post-data-7.pl line 23. avec :  
 
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use warnings;
  4. use LWP::UserAgent;
  5. use HTTP::Request;
  6. use HTTP::Request::Common;
  7. my $url = "http://www.easy-upload.net/";
  8. my $ua = LWP::UserAgent->new(agent => 'sputnick/2.0');
  9. my $req = HTTP::Request->new( POST $url,
  10.         Content_Type => 'form-data',
  11.         Content      => [
  12.                                 upfile  => ['~/images/foo.png'],
  13.                                 mail    => 'wam@mail.fr',
  14.                                 #boolform=0 => 'hidden readonly',
  15.                                 #<NONAME>=Uploader => 'submit'
  16.                         ]
  17. );
  18. my $res = $ua->request($req);
  19. $res->is_success or die ("Can't POST $url: $!" );
  20. my $img = $res->content();
  21. print $img $/; # don't forget to use binmode to retrieve the image


Message édité par sputnick le 30-10-2007 à 01:38:45
mood
Publicité
Posté le 29-10-2007 à 23:57:17  profilanswer
 

n°1633434
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-10-2007 à 09:32:38  profilanswer
 

$url n'est pas correcte, Il faut "viser" celle qui est en action dans le form qui contient l'input file en question.
Donc:

Code :
  1. my $url = "http://www.easy-upload.net/traitement_upload.php";


Essaye déjà avec ça, s'il y a d'autres problèmes on regardera plus en détail ;)

Message cité 1 fois
Message édité par anapajari le 30-10-2007 à 09:33:06
n°1633993
sputnick
bip...bip...bip...bip...bi...b
Posté le 30-10-2007 à 17:12:57  profilanswer
 

anapajari a écrit :

$url n'est pas correcte, Il faut "viser" celle qui est en action dans le form qui contient l'input file en question.
Donc:

Code :
  1. my $url = "http://www.easy-upload.net/traitement_upload.php";


Essaye déjà avec ça, s'il y a d'autres problèmes on regardera plus en détail ;)


 
 
Nouvel essai avec script corrigé :
Can't POST http://www.easy-upload.net/traitement_upload.php:  at post-data-8.pl line 23
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use warnings;
  4. use LWP::UserAgent;
  5. use HTTP::Request;
  6. use HTTP::Request::Common;
  7. my $url = "http://www.easy-upload.net/traitement_upload.php";
  8. my $ua = LWP::UserAgent->new(agent => 'Mozilla/2.0.4');
  9. my $req = HTTP::Request->new( POST $url,
  10.         Content_Type => 'form-data',
  11.         Content      => [
  12.                                 upfile  => ['/home/sputnick/images/crt-ssl.png'],
  13.                                 mail    => 'wam@mail.fr',
  14.                                 boolform => 'readonly'
  15.                         ]
  16. );
  17. my $res = $ua->request($req);
  18. $res->is_success or die ("Can't POST $url: $!" );
  19. my $img = $res->content();
  20. print $img $/; # don't forget to use binmode to retrieve the image

n°1634495
matafan
Posté le 31-10-2007 à 10:58:41  profilanswer
 

Le "content" d'un HTTP::Request, c'est directement les données à a envoyer, c'est pas un hash.

n°1634590
sputnick
bip...bip...bip...bip...bi...b
Posté le 31-10-2007 à 11:57:26  profilanswer
 

J'ai essayé comme ça, mais j'obtient les memes erreurs :
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use warnings;
  4. use LWP::UserAgent;
  5. use HTTP::Request;
  6. use HTTP::Request::Common;
  7. my $url = "http://www.easy-upload.net/traitement_upload.php";
  8. my $ua = LWP::UserAgent->new(agent => 'Mozilla/2.0.4');
  9. my $req = HTTP::Request->new( POST $url,
  10.         Content_Type => 'form-data',
  11.         Content      => '/home/sputnick/images/crt-ssl.png',
  12.         Content      => 'wam@mail.fr',
  13.                                 boolform => 'readonly'
  14. );
  15. my $res = $ua->request($req);
  16. $res->is_success or die ("Can't POST $url: $!" );
  17. my $img = $res->content();
  18. print $img $/; # don't forget to use binmode to retrieve the image

n°1634999
sputnick
bip...bip...bip...bip...bi...b
Posté le 01-11-2007 à 02:37:30  profilanswer
 

Bon je suis ouvert à toutes suggestions pour ce thread, mais en attendant d'avoir le niveau pour faire ça, j'ai contourné le problème :
 
 

Code :
  1. #!/usr/bin/perl -w
  2. # by sputnick
  3. # modules a utiliser
  4. use File::Basename;
  5. use Net::FTP;
  6. use Term::ANSIColor;
  7. use strict;
  8. # declaration de variables
  9. my $Object = basename($ARGV[0]);
  10. my $ftp;
  11. # methodes Net::FTP :
  12. $ftp = Net::FTP->new("host.fr", Debug => 0)
  13. or die "Cannot connect to some.host.name: $@";
  14. $ftp->login("login",'pass')
  15. or die "Cannot login ", $ftp->message;
  16. # methode Net::FTP necessaire pour ne pas corrompre un fichier binaire
  17. $ftp->binary();
  18. $ftp->cwd("/repertoire" )
  19. or die "Cannot change working directory ", $ftp->message;
  20. $ftp->put("$ARGV[0]" )
  21. or die "put failed ", $ftp->message;
  22. # affichage de l'URL finale en couleur
  23. print "URL is : \n\n";
  24. print color 'bold red';
  25. print "http://host/repertoire/$Object\n\n";
  26. print color 'reset';
  27. $ftp->quit;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  script remplissage formulaires html & POST DATA

 

Sujets relatifs
[Ajax] ajouter N formulairesSécurité dans les formulaires
HTML - Problème formulaire[HTML/PHP] Erreur simple dans code, mais introuvable
[Résolu] Url stockée et lien HTMLenvoyer un fichier en methode POST
Header flash Css/html[PHP/HTML] formulaire avec plusieurs champs hidden
Sortir resultat script txtProcesser automatiquement des formulaires
Plus de sujets relatifs à : script remplissage formulaires html & POST DATA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR