Les cases à cocher avec Perl CGI
Désolé si ma question est trop simple, je commence tout juste avec CGI...
J'ai donc un tas de cases à cocher avec le même nom. Exemple de code HTML:
<form action="/cgi-bin/checkbox.cgi" method="POST">
<input name="Loc_opt" value="Loc_1" type="checkbox">Option 1<br>
<input name="Loc_opt" value="Loc_2" type="checkbox">Option 2<br>
<input name="Loc_opt" value="Loc_3" type="checkbox">Option 3<br>
<input type="submit" value="Submit">
</form>
J'ai besoin de savoir qui d'entre eux sont vérifiées à l'aide de Perl CGI. J'ai le texte suivant dans la case.cgi:
print "Content-type:text/html\r\n\r\n";
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;
}
Que dois-je faire pour imprimer, par exemple, les valeurs des cases sélectionnées?
Où avez-vous obtenu ce code? Quel que soit le livre ou le site web que vous avez trouvé sur, arrêtez de lire maintenant. C'est environ une quinzaine d'années de la date et de l'contient au moins deux problèmes potentiels.
J'ai trouvé ce code ici. Pourriez-vous s'il vous plaît laissez-moi savoir ce que sont les problèmes et ce qui devrait être le bon code? Je vous serais reconnaissant si vous mettez votre réponse comme une réponse distincte.
Ouais. Tout tutoriel CGI qui n'utilise pas de CGI.pm devrait vraiment être ignoré. Ce module a été inclus avec Perl pour les 15 ans et nakes écrit CGO des programmes beaucoup plus facile. Les deux problèmes que j'ai noté sont 1/ On suppose que les paramètres sont séparés par des '&' (';' est également autorisé) et 2/ Il se casse si un seul paramètre, le nom a plusieurs valeurs associées. Il y a peut-être plus de problèmes. Utilisez simplement le
merci pour la suggestion! Je suis réécrire mon code à l'aide de CGI.pm maintenant, il semble être beaucoup plus soignée.
Veuillez cesser d'utiliser le vieux sale CGI.pm. Utiliser à la place une moderne et propre moteur web tels que Danseur ou Mojolicious.
J'ai trouvé ce code ici. Pourriez-vous s'il vous plaît laissez-moi savoir ce que sont les problèmes et ce qui devrait être le bon code? Je vous serais reconnaissant si vous mettez votre réponse comme une réponse distincte.
Ouais. Tout tutoriel CGI qui n'utilise pas de CGI.pm devrait vraiment être ignoré. Ce module a été inclus avec Perl pour les 15 ans et nakes écrit CGO des programmes beaucoup plus facile. Les deux problèmes que j'ai noté sont 1/ On suppose que les paramètres sont séparés par des '&' (';' est également autorisé) et 2/ Il se casse si un seul paramètre, le nom a plusieurs valeurs associées. Il y a peut-être plus de problèmes. Utilisez simplement le
param
fonction du CGI.pm.merci pour la suggestion! Je suis réécrire mon code à l'aide de CGI.pm maintenant, il semble être beaucoup plus soignée.
Veuillez cesser d'utiliser le vieux sale CGI.pm. Utiliser à la place une moderne et propre moteur web tels que Danseur ou Mojolicious.
OriginalL'auteur user828647 | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour configurer les param() résultat dans un tableau, si vous avez plusieurs éléments de formulaire avec le même nom.De CGI101:
OriginalL'auteur Reza S
OriginalL'auteur Sinan Ünür
Veuillez lire la documentation Perl pour la Module CGI. Il est facile, intégré dans les moyens de gérer tout cela.
OriginalL'auteur jimtut