OVH Cloud OVH Cloud

question Perl et formulaire HTML-CGI

1 réponse
Avatar
paul POULAIN
Soit le formulaire suivant :
<form action="script_perl.pl">
<input type="text" name="field_value" value="ligne1">
<input type="text" name="field_value" value="ligne2">
<input type="text" name="field_value" value="ligne3">
</form>

dans le script perl, on récupère un tableau de field_value avec :
my @field_value = $cgi->param("field_value");
et tout fonctionne.

MAIS :
si on a le formulaire :
<form action="script_perl.pl">
<input type="text" name="field_value" value="ligne1">
<input type="text" name="field_value" value="ligne2">
<textarea name="field_value">
ligne3
</textarea>
</form>

(et donc un textarea à la place d'un input), le tableau ne contient plus
cette 3eme ligne.

Est-ce que j'ai fait une erreur de diagnostic ? Y a t'il une raison à cela ?
Et surtout, comment faire pour récupérer un tableau avec toutes les
valeurs ?
--
Paul

1 réponse

Avatar
damien guerin
Et un truc comme ça :

%incoming = &read_input; # Read information into associated
# array %incoming.
$your_text = $incoming{'review'}; # Fetch the text from the array.
print $your_text; # Print the text.


sub read_input
{
local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else
{
$buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
%FORM;
}