Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > запись в файл + редирект


Автор: Evgenia 27.1.2005, 10:42
Возникла следующая проблема.

Пользователь заполняет форму -> запускается скрипт.

В скрипте:

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".

Что в данном случае не так?
Как в одном скрипте сделать запись в файл и сразу после этого - редирект? Или это невозможно в принципе?

Автор: kostofffan 28.1.2005, 12:50
Ошибка "Premature end of script headers" указывает на то, что клиенту отсылаются не все заголовки. Может здесь нужно в самом начале добавить что-то типа "Content-Type: text/html".
Да, кстати, ты не забыл после select(NEW) написать select(STDOUT)?

Автор: korob2001 28.1.2005, 21:13
Что хранится в переменной $url? Точнее, как ты записываешь этот url?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)