Rechercher : dans
Par :

[Perl & CGI] Envoi de variable sur perl

Dernière réponse le 24 sep 2007 à 15:00:35 Khalistoo, le 6 jui 2007 à 14:52:10 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « [Perl & CGI] Envoi de variable sur perl » dans :
Les variables avec Perl Voir Concept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...
CGI - Les variables d'environnement Voir Notion de variable d'environnement Les variables d'environnement sont des données stockées dans des variables du système et permettent aux programmes d'avoir des informations sur son environnement. Dans le cas du programme CGI, l'environnement est...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Perl - Les fichiers VoirLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
Perl - les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...

1

blux, le 6 jui 2007 à 14:58:42
  • +1

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...
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

2

khalistoo, le 6 jui 2007 à 15:03:32

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 :$

Répondre à khalistoo

3

blux, le 6 jui 2007 à 15:16:36

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...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

4

khalistoo, le 6 jui 2007 à 15:34:22

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 ^^

Répondre à khalistoo

5

blux, le 6 jui 2007 à 15:40:03

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 ?
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

6

khalistoo, le 6 jui 2007 à 15:50:00

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.

Répondre à khalistoo

7

blux, le 6 jui 2007 à 16:12:14

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
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

8

khalistoo, le 6 jui 2007 à 16:23:03

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

Répondre à khalistoo

9

khalistoo, le 7 jui 2007 à 15:59:51

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

Répondre à khalistoo

10

 mohsin, le 24 sep 2007 à 15:00:35

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

Répondre à mohsin
Collection CommentÇaMarche.net