[Perl] Navigation dans un site + remplissage de formulaires

Navigation dans un site + remplissage de formulaires [Perl] - Perl - Programmation

Marsh Posté le 02-03-2004 à 11:16:25    

Salut,
 
j y connais rien o perl, mais on ma dit que ce que je voulais fair etait faisable avec ca :
 
en fait, j ai un programme ki me genere des formulaire HTML automatiquement mais cela ne conviennent pas exactement a mon besoin (certain champs devraient etre caché,...)  
 
je souhaite donc refaire une interface Web ki rentre les info dans l autre page WEB.
 
est ce ke kk1 aurrait un exemple d un tel programme ?


Message édité par Z_cool le 02-03-2004 à 14:10:22

---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 11:16:25   

Reply

Marsh Posté le 02-03-2004 à 11:24:58    

tu peux me montrer la page que tu veux utiliser ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 02-03-2004 à 11:34:42    

ba non, c est un serveur interne a mon entreprise.


---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 11:37:53    

en gros, ca commence avec une page d authentification (user pass) puis apres il y a pas mal de champs de formulaire.
 
 
en fait, moi je voudrais decomposer certain champs :
 


page original                                page reelelement affiché
 
un champs text <----> concatenation <--> plusieur champs text


Message édité par Z_cool le 02-03-2004 à 11:38:28

---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 11:55:32    

plus personne ?


---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 12:56:18    

ah ba non, vraiment plus personne


---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 13:02:47    

c'est a dire que ta question est pas super claire non plus. Sachant que tu n'as toi même pas trop l'air de savoir ce que tu veux et qu'en plus tu ne peux rien montrer je vois pas trop comment on peut t'aider...

Reply

Marsh Posté le 02-03-2004 à 13:25:51    

Je crois que ce qu'il veut, c'est recreer lui meme un formulaire, et faire un script qui, a la soumission du formulaire, recupere les valeurs et les transmet a la page web d'origine qu'il ne souhaite pas utiliser directement.
 
Ca doit certainement pouvoir se faire en perl (j'y connais rien) et il est quasi sur que ca se fait en php.
 
Quant a le coder, j'ai pas le temps, desole :/

Reply

Marsh Posté le 02-03-2004 à 13:28:10    

v10ware a écrit :

Je crois que ce qu'il veut, c'est recreer lui meme un formulaire, et faire un script qui, a la soumission du formulaire, recupere les valeurs et les transmet a la page web d'origine qu'il ne souhaite pas utiliser directement.
 
Ca doit certainement pouvoir se faire en perl (j'y connais rien) et il est quasi sur que ca se fait en php.
 
Quant a le coder, j'ai pas le temps, desole :/


 
ouai c est ca ke je veux fair.
 
en gros, c est afficher un formulaire, ki a sont execution entre les donnees dans une autre formulaire


---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 13:42:34    

si en plus tu te mets à ecrire en seumeuseu je vais me mettre à pleurer....
 
Bref ta question est donc: "Comment faire un script perl qui pré-remplisse les champs d'un formulaire d'une page html existante?" on est d'accord?
 
Je vais supposer que tous tes champs text sont des inputs ni plus ni moins.
Je suppose aussi que tu sais faire le nouveau formulaire qui envoie les données au script perl

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use CGI;
  4. ### on lit la page html dans laquelle on doit faire les remplacements
  5. my $source_file = "chemin/vers/ta/page.html";
  6. open(SOURCE, $source_file) || die "Impossible d'ouvrir le fichier $source_file" ;
  7. my $data = join "", <SOURCE>;
  8. close(SOURCE);
  9. ### boucle pour chacun des params
  10. foreach $prm_name (CGI::param) {
  11.    ### on récupère la valeur du param
  12.    $current_value=CGI::param($prm_name);
  13.    ### remplacement dans le code de l'ancien formulaire
  14.    $data =~ s/<input(.*?)name="$prm_name"(.*?)value=""(.*?)>/<input$1name="$prm_name"$2value="$current_value"$3>/i;
  15. }
  16. print $data;
  17. exit;


gaffe a comment est configurer ton apache pour les headers.
 
[edit]
ah oui j'ai oublié de préciser qu'il faut que les champs de ton nouveau formulaire portent le même nom que ceux de l'ancien...


Message édité par anapajari le 02-03-2004 à 13:44:57
Reply

Marsh Posté le 02-03-2004 à 13:42:34   

Reply

Marsh Posté le 02-03-2004 à 13:58:23    

Anapajari a écrit :

si en plus tu te mets à ecrire en seumeuseu je vais me mettre à pleurer....
 
Bref ta question est donc: "Comment faire un script perl qui pré-remplisse les champs d'un formulaire d'une page html existante?" on est d'accord?
 
Je vais supposer que tous tes champs text sont des inputs ni plus ni moins.
Je suppose aussi que tu sais faire le nouveau formulaire qui envoie les données au script perl

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use CGI;
  4. ### on lit la page html dans laquelle on doit faire les remplacements
  5. my $source_file = "chemin/vers/ta/page.html";
  6. open(SOURCE, $source_file) || die "Impossible d'ouvrir le fichier $source_file" ;
  7. my $data = join "", <SOURCE>;
  8. close(SOURCE);
  9. ### boucle pour chacun des params
  10. foreach $prm_name (CGI::param) {
  11.    ### on récupère la valeur du param
  12.    $current_value=CGI::param($prm_name);
  13.    ### remplacement dans le code de l'ancien formulaire
  14.    $data =~ s/<input(.*?)name="$prm_name"(.*?)value=""(.*?)>/<input$1name="$prm_name"$2value="$current_value"$3>/i;
  15. }
  16. print $data;
  17. exit;


gaffe a comment est configurer ton apache pour les headers.
 
[edit]
ah oui j'ai oublié de préciser qu'il faut que les champs de ton nouveau formulaire portent le même nom que ceux de l'ancien...


 
merci, la ou ca ce complique, c est source file n existe pas, il est generé o moment de l appel
 
et il fo deja gerer une page de user/pass, et kke click a la souris.
 
 
mais cela me permet de mieux comprendre


---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 14:01:36    

oui bin la je m'arrete parce que ça sent bon le truc  de spammer ton histoire ...

Reply

Marsh Posté le 02-03-2004 à 14:05:18    

oui, je reconnais ke ca peut sembler illegale, mais ce n est pas le cas.
 
si je t explique la totalité du projet, veux tu bien m aider en MP ?
 
en fait, c est pour utiliser l interface Web du programme eTrust Admin de computer Associate.
 
le probleme, c est ke cette interface WEB n est pas du tout flexible et ne permet donc pas de s adapter au besoin de ma boite, et je cherche donc un moyen de customiser ca, et c est l un des seul moyen ke j ai trouvé.
 
plus de details ?


Message édité par Z_cool le 02-03-2004 à 14:06:29

---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 14:22:18    

bon ba on dirait ke ca veux dir non.
 
merci


---------------
#mais-chut
Reply

Marsh Posté le 02-03-2004 à 14:31:13    

Z_cool a écrit :

bon ba on dirait ke ca veux dir non.
 
merci


 :), je vais pas non plus faire ton boulot
mais c'est pas super compliqué à faire maintenant que tu as les idées du début...
La seule chose qu'il faut que tu apprennes maintenant c'est comment faire pour récuperer une page 'distante' ( http://ton.serveur/ton/script/qui/genetere/tapage.pl)  au lieu d'une page 'local' ( chemin/vers/ta/page.html )

Reply

Marsh Posté le 02-03-2004 à 14:53:26    

rien compris
 
tant pis


---------------
#mais-chut
Reply

Marsh Posté le 03-03-2004 à 08:53:16    

personne d autre pour m expliker ?
 
parce ke meme l open d un site distant j y arrive pas


---------------
#mais-chut
Reply

Marsh Posté le 05-03-2004 à 11:11:05    

reelement personne pour m expliker ?


---------------
#mais-chut
Reply

Marsh Posté le 12-03-2004 à 15:30:18    

bon j'ai rien suivit à ce topic, mais ce que tu appel 'lopen d'un site distant' ca doit etre recuperer une page en http c'est ca?
 
use LWP::Simple;
my $page = get('http://...');
# si ya rien dans $page c'est qu'il y a eu une erreur

Reply

Sujets relatifs:

Leave a Replay

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