[Perl & CGI] Envoi de variable sur perl

[Résolu/Fermé]
Signaler
-
 mohsin -
Bonjour,

J ai un tit soucis concernant un script en perl. Deja le perl et moi ca fait deux mais je voudrai trouver un moyen de faire un interface, genre un formulaire en cgi, qui va envoyer la variable entree dans le "text box" vers mon script perl et ensuite recuperer cette variable pour faire toute une serie de requete sql est ce que qqn pourrait m aider ?

Merci beaucoup

5 réponses

Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 124
Salut,

tu tapes dans un script PERL la ligne suivante :

for $I (0..$#ARGV) {print "#$ARGV[$I]#\n";}

Et tu l'appelle avec toto.pl argument1 argument2 ....

Il va t'afficher la liste des arguments passés qui sont stockés dans le tableau @ARGV, ensuite tu peux jouer avec chaque argument comme il te plaira...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
7
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
13 novembre 2009
1
Merci pour la reponse rapide :D

Et je met ca sur quoi ? sur le script perl en lui meme ? Genre voici le haut de mon code perl (script.pl)
#!/usr/bin/perl -w

#Scriptname: script.pl

#define libraries used
use strict;
use DBI;
use Sys::Hostname;
use lib "$ENV{HOME}/common/lib/perl";

# now define the DBI connection strings
my $server='server-name';
my $database='db-name';
my $username='khalistoo';
my $password='password';  



Je dois mettre cette ligne ici ou pas ?

Je suis desole de donner l impression de ne rien comprendre :$ mais ce n est pas qu une impression :$
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 124
Oui, tu mets la ligne après ta définition de variables et tu appelles ton script avec la commande :
script.pl arg1 arg2 ... argn
Chacun de tes paramètres sera accessible sous le nom de $ARGV[n] en commençant par 0 bien entendu...
Messages postés
7
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
13 novembre 2009
1
Donc en gros mon script perl ressemblerait a ca

#!/usr/bin/perl -w

#Scriptname: script.pl

#define libraries used
use strict;
use DBI;
use Sys::Hostname;
use lib "$ENV{HOME}/common/lib/perl";

# now define the DBI connection strings
my $server='server';
my $database='db';
my $username='Khalistoo'; 
my $password='password';   

#Define all other variables
my $variable_du_form;
# c'est pour remplacer ce system que je veux faire un formulaire
my $logfile='fichier_avec_liste_de_variable.dat';  
my $outfile='resultat_a_recuperer.xls'; 

$I (0..$#ARGV) {print "#$ARGV[$I]#\n";} \ #le code que tu m as communique

#connect to the DB
$dbh = DBI->connect("dbi:Sybase:server=$server;database=$database", $username, $password, {AutoCommit => 1, RaiseError => 1 }) or die("Error: Unable to connect to database: $server : $DBI::errstr");

open (LOGFILE, "$logfile") or die "I couldn't get at $logfile";
open (OUT, ">>$outfile") or die "I couldn't get at $outfile";

print OUT "Valeur entree\n";

for $mid (<LOGFILE>) {
        chomp($mid);

# MID
$merchant='SELECT distinct MID FROM codebook.iqe_main WHERE mid = ' . $mid . '';


$run_live->finish;
$dbh-> disconnect();
#return

print "Cheers.\n";
exit 0;


Bon bien sure le top serait de pouvoir afficher le resultat de tout ca sur la meme page, mais deja que j arrive a comprendre ce dont j ai besoin ca serait pas mal.

Donc si je ne m abuse, je fais une page html, un simple form basic, sur lequel je met

<form method="post" action="script.pl.">


et ensuite pour la commande je suis encore perdu :D.

Je comprend vite mais faut m'expliquer longuement ^^
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 124
Non, on ne s'est pas bien compris...

La ligne que j'ai donnée sert juste à afficher les valeurs des paramètres passés au script PERL.

Pour t'en servir, il faut les utiliser comme une variable, genre :
if ($ARGV[0] != 0)...
Ca irait mieux en compréhension ?
Messages postés
7
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
13 novembre 2009
1
Ben dison que la ca parle un peu plus mais je comprend pas comment je peux faire en sorte que l input, mis dans mon formulaire peut etre envoye au script perl.

En plus j ai l air d etre vraiment pas doue.
comme je disais, je comprend qu il me faille un formulaire d'un cotes, et mon script perl de l autre.

Comme tu peux le voir, le script perl lance des requetes SQL (enfin je les ai enlevee parce que si non ca aurait ete super long comme code surtout que c est loin d etre "optimise" ).

Le formulaire servirait donc a ce que je puisse entrer une valeur genre 1578. cette meme valeur est envoye au script.pl sous l'appelation
my $variable_du_form. 
que tu peux retrouver dans le script sous le nom de $mid.

Donc ce que je voudrai c est enlever open (LOGFILE, "$logfile") qui me servirait a rien, et fournir moi meme, a l aide du formulaire, la variable. tu vois ce que je veux dire ?
(en fait oui je pense que tu vois, c est plustot la de mon cotes que ca coince) . J ai vu pas mal de formulaire sur le net, mais je suis pas en mesure de les adapter pour que la valeur entree dans le formulaire soit recuperee par le script et ensuite utilisee pour le reste du script.

Merci beaucoup pour l aide.
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 124
C'est dans ton HTML que tu appelles le script, c'est donc là qu'il faut passer un paramètre ou le faire en direct :

http://fr.selfhtml.org/cgiperl/introduction/index.htm
Messages postés
7
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
13 novembre 2009
1
Je l ai lu ce site, y a des tonnes d'info c est genial.

Mais je comprend toujours pas comment passer les input d un form vers mon perl. Ca me demoralise de me dire que ca doit etre tout bete et que je suis incapable de mettre le doigt dessu
Messages postés
7
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
13 novembre 2009
1
Ca y est j ai reussi merci beaucoup pour l aide, maintenant j ai plus qu a afficher les donnees dans un tableau et je suis sorti de l affaire :">

Allez hop re dans les bouquins, merci encore
bonjour tout le monde,

j'ai un soucis, je voudrai faire un include dans un fichier perl:

les params de connexion de DB par exemple, comment faire pour inclure ce fichier dans tous les fichier perl de l'apli?

merci d'avance