Det fungerar för mig i.a.f. Fram till rad 20 vill säga, där ju scriptet avslutas eftersom du har en exit.
Vad säger felloggen?
use CGI ":standard";
Om du ändå laddar CGI-modulen så kan du göra det enklare för dig genom att använda den när du läser indata från användaren. Detta gör du genom att byta ut:
$in = $ENV{'QUERY_STRING'};
@in = split(/[&;]/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/\+/ /g;
($key, $val) = split(/=/,$in[$i],2);
$key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val; }$id = "";
if ($in{'id'}) {
$id_number = ($in{'id'});
$id_number =~ s/[^0-9]//g;
}
Mot:
$query = new CGI;
$id_number = $query->param('id');
$id_number =~ s/[^0-9]//g;
Det brukar rent allmänt rekommenderas att man använder CGI-modulen snarare än att skriva dessa rutiner själv. En anledning att inte använda CGI-modulen kan möjligen vara att den är ganska stor, och tar relativt lång tid på sig att ladda. Men om du ändå laddare den ser jag ingen anledning till att inte utnyttja den fullt ut. :)
------------------
Robban < robban@lipogram.com >