Сервер Linux.У меня возникают необъяснимые проблемы при отправке данных POST в сценарий.
Например, я отправляю следующие данные POST: choice=update
Вот скрипт:
#!/usr/bin/perl -w
print "Content-type: text/html\n\n";
if ( $ENV{'REQUEST_METHOD'} eq "GET" ) {
$in = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
@in = split(/&/,$in);
foreach $i (0 .. $#in) {
# Convert plus's to spaces
$in[$i] =~ s/\+/ /g;
# Split into key and value.
($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
# Convert %XX from hex numbers to alphanumeric
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
# Associate key and value
$in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
$in{$key} .= $val;
}
print $in{'choice'};
При первом обращении к сценарию он печатает update
При втором обращении к нему печатается updateupdate
В третий раз печатается updateupdateupdate
... ии так далее.
Что может заставить его продолжать добавлять строку к себе между запросами?Я посылаю одни и те же данные POST каждый раз, просто обновляя браузер.Файлы cookie не используются.В файле нет ничего, что не закомментировано.
Редактировать: Кроме того, когда я print <STDIN>
каждый раз говорит choice=update
.Другие update
не добавляются к STDIN