bonjour à tous,

j'ecris une interface CGI DBI en perl. c'est au niveau du CGI que ca coince:
j'ai un formulaire simple ecris en CGI qui renvoie (methods post) un parametre unique (donc simple a "parser") à un autre formulaire CGI qui doit utiliser ce parametre.


1-le 1er formulaire est du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
print	startform(-method=>'post', -action=>"../test.cgi", -target=>'response');
print	div({-class=>'menu_onglet'},
              span({-class=>'onglet-actif'},'Search trait'),
              hidden(-class=>'onglet', -name=>'scip', -default=> $cgi -> param('project')),
              submit({-class=>'onglet',-value=>'Search QTL by trait'}),
              a({-class=>'onglet', -href=>"$project"},'Project description')
         );
print	endform;
le parametre scip est bien envoyé au deuxième formulaire

2-le deuxième formulaire doit lire le parametres qui lui a été envoyé ET ecrire un formulaire qui depend du parametre que le premier script lui a envoyé.il est du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/perl
use strict; use Carp; use DBI; use CGI qw/:all/;

#recuperation des parametres
my $cgi_in = new CGI;
my $in = $cgi_in = param('scip');

#ici un
#print $in;
# me donne bien la valeur envoyée par le 1er script:
#Le parametre est bien lu et stocké dans un variable


#creation d'un nouveau cgi
my $cgi = new CGI;
my $title = "eQTL by Hak: this frame should be in a frameset";

print $cgi -> header;

my $path_info = $cgi -> path_info;

#ECRITURE DE LA PAGE HTML

#si pas de path_info alors je creer un FRAME SET
if(!$path_info){
    &print_frameset;
    exit 0;
}

#sinon j'ecris dans les differents FRAME en fonction de leur $path_info
&print_html_header;
&print_onglet if $path_info =~ /onglet/;
&print_query if $path_info =~ /query/;
&print_response if $path_info =~ /response/;
&print_end;


#LES FONCTIONS

#ecriture du FRAME SET
sub print_frameset{
    my $script_name = $cgi -> script_name;

#    ICI print $in; me donne bien encore une fois la valeur attendue

    print <<FS
	<HTML>
	<HEAD><TITLE>$title</TITLE></HEAD>
	<FRAMESET ROWS="9%,*" FRAMEBORDER="yes">
	<FRAME NAME="onglet" SRC="$script_name/onglet" SCROLLING="auto">
	<FRAMESET COLS="25,*" FRAMEBORDER="yes">
	<FRAME NAME="query" SRC="$script_name/query" SCROLLING="auto">
	<FRAME NAME="response" SRC="$script_name/query" SCROLLING="auto">
	</FRAMESET>
	</FRAMESET>
	</HTML>
FS
	;
#A PARTIR d'ici la variable $in disparait !!!! ????
print $in; me renvoieune chaine vide
exit 0;
}

#debut de page html
sub print_html_header {
    print $cgi->start_html(
			   -title=>$title,
			   -style=>{-type=>'text/css',
				    -media=>'screen',
				    -src=>'../../style.css'
				    }
			   );
    print $in;
}

#fin de page html
sub print_end {
        print $cgi->end_html;
}

#ecriture du contenu de mes FRAMES

sub print_onglet{
    my $script_name = $cgi -> script_name;
    print "::::".$in."!!!"; #$in est vide depuis le FRAMESET
}
sub print_query{
    my $script_name = $cgi -> script_name;
    print "::::".$in."!!!"; #$in est vide depuis le FRAMESET
}
sub print_response{
    my $script_name = $cgi -> script_name;
    print "::::".$in."!!!"; #$in est vide depuis le FRAMESET
}

exit 0;
apres avoir chercher sur la doc et les forum, et revus mon script je ne comprend ce que devien ma ma variable $in ??

Est ce que quelqu'un pourrait m'eclairer ?
Merci d'avance,