Forum Webscript.Ru

Программирование => Perl => Тема начата: Юстас от 22 Февраля 2007, 12:48:05

Название: как отключить создание страницы?
Отправлено: Юстас от 22 Февраля 2007, 12:48:05
Из известных модулей собрал небольшую программу, которая берет данные формы и отправляет в почту.
Но при этом программа при каждом обращении открывает у юзера новое окно, которое мне не нужно. Его, конечно можно тутже закрыть, вставив в него скрипт на JS, но тогда на экране получается эффект моргания.
Если ничего не сообщать для нового окна, то оно все равно открывается, но с ошибкой 502.
Заголовок программы такой:
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);

Есть простое решение задачи?
Название: как отключить создание страницы?
Отправлено: arto от 22 Февраля 2007, 14:19:12
удалить use CGI::Carp qw(fatalsToBrowser); ?
Название: как отключить создание страницы?
Отправлено: Юстас от 22 Февраля 2007, 14:23:30
эффект тот же ... пытается сгенерить окно
Название: как отключить создание страницы?
Отправлено: arto от 22 Февраля 2007, 15:44:21
попробуйте удалить строки с 14 по 32.
Название: как отключить создание страницы?
Отправлено: Юстас от 22 Февраля 2007, 15:52:30
очень ценный совет, по эффекту сравним с "удалить волосы"
Название: как отключить создание страницы?
Отправлено: NeoNox от 22 Февраля 2007, 17:31:00
Юстас описано весьма размыто. Постарайтесь изложить все как будто ребенку объясняешь, тогда и советы будут четкими.
Название: как отключить создание страницы?
Отправлено: arto от 22 Февраля 2007, 22:41:36
удалили, не помогло?
Название: как отключить создание страницы?
Отправлено: Юстас от 26 Февраля 2007, 11:36:40
NeoNox
Попробую подробнее.
В программе на Perl всего около 20 строк. Беру данные из формы и отправляю их себе на почтовый адрес. Если в программу не вставлять ни одного print, то у юзера открывается новое коно с текстом - ошибка 502, если вставить, то содержимое print выводится опять же в новом окне. Мне нужно сделать так чтобы новое окно вообще не появлялось. Где-то прочитал что нужно отправить заголовок 204, но пока не получается.
Название: как отключить создание страницы?
Отправлено: NeoNox от 26 Февраля 2007, 13:18:00
Цитировать
Юстас:
В программе на Perl всего около 20 строк.

Ну так выложи ее всю.

Цитировать
Юстас:
Где-то прочитал что нужно отправить заголовок 204, но пока не получается.


print header(-status=>204)
Название: как отключить создание страницы?
Отправлено: Юстас от 26 Февраля 2007, 13:36:38
NeoNox ок, вот текст (адреса убрал чтобы не посчитали раскруткой ресурса) :

#!/usr/bin/perl
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);

my $query = CGI->new;
print $query->header(-type => \'text/plain\', -status=> \'204 No Response\');

sub main
{
  my $n1 = param(\'n1\'); my $n2 = param(\'n2\'); my $n3 = param(\'n3\');
  $summ = " $n1 $n2 $n3 ";
  &sendmail(\'aaaaaaaaaaaa\',\'bbbbbbbbbbbb\',$summ);
}

sub sendmail
{ my ($email, $subject, $data) = @_;
 my $login = \'cccccccccccccccc\';    
 my $From = \'dddddddddddddddddd\';
 my $FromName = \'eeeeeeeeeeee\';
 my $mail = "/usr/sbin/sendmail -t -f$login";
 local(*SM);
 if (open(SM, "|$mail")) {
   print SM "From: $FromName <$From>\\n";
   print SM "To: $email\\n";
   print SM "Subject: $subject\\n";
   print SM "Content-Type: text/plain; charset=Windows-1251\\n\\n";
   print SM "$data\\n";
   close(SM);
 } else { die "Ошибка: не найден $mail"; }
}

&main;
Название: как отключить создание страницы?
Отправлено: arto от 26 Февраля 2007, 13:52:06
интересно, как это все работает?

>perl justas.pl
Global symbol "$summ" requires explicit package name at justas.pl line 12.
Global symbol "$summ" requires explicit package name at justas.pl line 13.
Execution of justas.pl aborted due to compilation errors.

>
Название: как отключить создание страницы?
Отправлено: Юстас от 26 Февраля 2007, 14:03:02
arto
... ну стер с адресами еще и     my $summ;   ...

... вопрос не в том что и как выводится в письмо, а в том как выключить создание новой страницы, текст остальной программы может быть практически любой...
Название: как отключить создание страницы?
Отправлено: AnnA от 28 Февраля 2007, 13:42:06
этот вопрос больше по html, чем по Perl. :)
если вы пишите