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