|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Edvard Vagorov 2:5066/24.3 22 Sep 2000 00:18:43 To : All Subject : Apache and Perl for Win -------------------------------------------------------------------------------- /ДДДґЫЫЫІІ±±°°/ /Привет/, /уважаемый/ /All/ //! /°°±±ІІЫЫЫГДДД/ Я тут пишу простейший скрипт обработки форм с простейшими процедурами (получение данныйх с формы, раскидка по переменным, закидка в sendmail и вывод результитующего redirect-файла) Проверяю все это заменой вместо Open (MAIL "|$Mail_Prog $Recipient") #Отсылка содержимого формы... Open(MAIL ">Mail_File") #Запись содержимого формы в файл... А мой Apache под форточками ругается а логе "Primature end of script headers" и в броузере выдается "Internal Server Error" Подскажите, где "собака порылась"? Текст скрипта (маленький, надеюсь, модератор не будет против) __________________Hачало formdmail.pl___________________________ #!/usr/local/bin/perl # #$mail_prog = '/usr/lib/sendmail'; $mail_prog = 'f:/usr/lib/sendmail.txt'; # # Получаем данные из формы read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Разбиваем данные по парам name-value @pairs = split(/&/, $buffer); foreach $pair (@pairs){ local($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; #Получаем требуемые переменные if ($name = 'user'){$user = $value;} elsif ($name eq 'email'){$email = $value;} elsif ($name eq 'comment'){$comment = $value;} elsif ($name eq 'recepient'){$receipient = $value;} elsif ($name eq 'subject'){$subject = $value;} elsif ($name eq 'redirect'){$redirect = $value;} #Получаем остальные данные формы else{$FORM{$name} = $value;} } #open (MAIL, "|$mail_prog $recipient"); open (MAIL, ">$mail_prog"); #проверяю записью результата в файл print MAIL "Subject: $subject\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-Type: text/plain; charset=\"windows-1251\"\n"; print MAIL "Content-Transfer-Encoding: 8bit\n"; print MAIL "\n\n"; if ($user){print MAIL "Иья ютяЁртштхыя: $user\n";} if ($email){print MAIL "e-mail: $email\n";} If ($comment){print MAIL "КюьхэтрЁшш: $comment\n";} foreach $data ($FORM){print MAIL "$data : $FORM{$data}\n";} close(MAIL); #Выводим файл переадресации print "Content-Type: text/html\n\n"; print "Location: $redirect"; exit; _______________________конец formmail.pl___________________________ Он просто обрабатывает форму с неограниченным количеством параметров и пятью фиксированными (user, email, subject, recipient, redirect) Что мне и нужно для множества сайтов, чтобы заменить этот глюкавый ACTION="mailto:..." /ДДДДДДДДДДДґ/ /С/ /наилучшими/ /пожеланиями/, /Эд/ /Важоров/. /ГДДД/ --- Terminate 5.00/Pro Astrosoft BBS (8352)720037, пт-вс 23-03h * Origin: FARa-здоровье и естественный цвет волос! (2:5066/24.3) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27669118593a.html, оценка из 5, голосов 10
|