[Perl & CGI] Envoi de variable sur perl

Résolu/Fermé
Khalistoo - 6 juil. 2007 à 14:52
 mohsin - 24 sept. 2007 à 15:00
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

blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
6 juil. 2007 à 14:58
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
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 1
6 juil. 2007 à 15:03
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 :$
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
6 juil. 2007 à 15:16
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...
0
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 1
6 juil. 2007 à 15:34
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 ^^
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
6 juil. 2007 à 15:40
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 ?
0
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 1
6 juil. 2007 à 15:50
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.
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
6 juil. 2007 à 16:12
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
0
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 1
6 juil. 2007 à 16:23
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
0
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 1
7 juil. 2007 à 15:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0