Forum Webscript.Ru
Программирование => Perl => Тема начата: Eva от 27 Января 2005, 10:34:52
-
Возникла следующая проблема.
Пользователь заполняет форму -> запускается скрипт.
В скрипте:
1. выполняется upload файла:
@parts = split(/\\\\/,$filename);
$file=@parts[(scalar @parts) - 1];
open (UFILE,">$imgurl$file");
binmode(UFILE);
flock(UFILE,2);
while ($bytesread=read($filename,$buffer,1024)) { print UFILE $buffer; }
close(UFILE);
close $filename;
2. редактируется некий текстовый файл:
open (OLD,"< $old");
open (NEW,"> $new");
select(NEW);
while()
{
...
print NEW $_;
}
close(OLD);
close(NEW);
rename($new,$old);
3. выполняется редирект
print "Status: 302\\n";
print "Location: $url\\n\\n";
В результате в error_log появляется ошибка "Premature end of script headers".
Что в данном случае не так?
Как в одном скрипте сделать запись в файл и сразу после этого - редирект? Или это невозможно в принципе?
-
Eva:
В результате в error_log появляется ошибка "Premature end of script headers".
Что в данном случае не так?
Eva:
select(NEW);
поток вывода по умолчанию стоит вернуть в STDOUT
т.е.
select STDOUT;
print "Status: 302\\n";
print "Location: $url\\n\\n";
Кстати, в вашем скрипте
Eva:
open (NEW,"> $new");
select(NEW);
while()
{
...
print NEW $_;
select не нужен, т.к. вы все равно используете дескриптор. Т.е. можете просто смело убрать
select(NEW);
и все должно быть нормально
-
Green Kakadu:
select не нужен, т.к. вы все равно используете дескриптор. Т.е. можете просто смело убрать
select(NEW);
и все должно быть нормально
Спасибо огромное!