|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andy Bogdanov 2:5020/400 15 May 2001 14:47:33 To : All Subject : Re: Q: flock messing the script headers thing. -------------------------------------------------------------------------------- Alexander Bolotnov <Alexander.Bolotnov@p82.f4.n5052.z2.fidonet.org> wrote: AB> такая штука. хочется, чтобы скрипт сделал что надо, а потом передать ему: AB> "Content-type: text/html\n;Location: ../somewhere/something?foo\n\n", чтобы AB> он послал меня как бы обратно туда, откуда я пришел, а уже там обработчик AB> говорит, что у меня получилось или нет. все бы хорошо, но вот только если AB> пользовать flock(), перед которым нет header'a, то почему-то отдается 500 и AB> premature script headers, что есть очень нежелательный момент, потому что с AB> отданным уже хедером я, выходит, не перешлюсь на нужную мне страничку... как AB> быть? вот примерный код: #!c:/perl/bin/perl.exe -T use CGI qw/:standard/; $q AB> = new CGI; $name = $q->param('name'); $email = $q->param('email'); $note = AB> $q->param('note'); open DF, "< $data" or die $!; while(<DF>){$last = $_ if AB> eof(DF);} close DF; ($snum) = $last =~/^(\d+)||(.+)$/; $snum++; $name = AB> "Unknown" if (!$name); $email = "" if ($email!~/.+?@.+\..+/); if AB> (!$note){ print header, start_html, "here has to be a message", AB> end_html; die; } for AB> ($name,$email,$note) { s/&/&/g; s/</</g; />/g; s/(\r|\t)/ AB> /g; s/\s\s/ /g; s/\n/<br>/g; } #print data to file open DF, ">> $data" AB> or die $!; ВОТ ЗДЕСЬ HАЧИHАЮТСЯ ПРОБЛЕМЫ. Если убрать флок, то все AB> нормально. flock (DF,LOCK_EX); print DF AB> "$snum||$name||$email||$note\n"; #flock(DF, LOCK_UN); close DF; print AB> "Content-type: text/html\n"; print "Location: AB> ../yosh/contacts_1.shtml?done\n\n"; use Fcntl qw(:flock); -- Bye! Andy Bogdanov //andy@andy.it.itn.ru// --- ifmail v.2.15dev5 * Origin: ITN (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/240044aed2a47.html, оценка из 5, голосов 10
|