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


Автор: Zima 2.4.2004, 13:27
Здравствуйте уважаемые специалисты.
как можно передать переменную из одного скрипта в другой? запись/чтение из файла мне не подходит.
есть форма, нужно чтобы данные из нее передавалисьв другое окно.
помогите пожалуйста

Автор: GoodBoy 2.4.2004, 13:39
Не совсем (совсем не) понял что именно Вам нужно... :-)))

Автор: Zima 2.4.2004, 13:50
ну вот, есть форма у меня с флажками, и нужно, чтобы то что выбрано в ней на ней открывалось в новом окне.
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'});
}
elsif ($ENV{'REQUEST_METHOD'} eq "GET")
{
$bufer=$ENV{'QUERY_STRING'};
}
else {
&fatal_error;
}
@pairs = split(/&/, $bufer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$value =~ tr/+/ /;
$value =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/\;/;/g;
$value =~ s/\</&lt;/g;
$value =~ s/\>/&gt;/g;
$value =~ s/\\//g;
$value =~ s/\n/<br>/g;

if ($name eq 'flower') {
push @flower,split(/,/,$value);}
else {
$FORM{$name} = $value; }
}
$gift=join('|',@flower);


грубо говоря нужно эту переменную $gift выводить в другом окне
которое открывается при подверждении данных формы

Автор: ElectricalStorm 2.4.2004, 15:32
java script - вам надо !

Автор: korob2001 6.4.2004, 17:57
А может этот пример поможет?
Код

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

my $cgi = new CGI;

sub show_form {
   print $cgi->start_html( -title => 'Ввод пользователя' );
   print $cgi->start_form( -name => 'myform', -target => '_blank' );
   print $cgi->b('Введите ваше имя: ');
   print $cgi->textfield( -name => 'name' );
   print $cgi->submit( -name => 'send', -value => 'Отправить' );
   print $cgi->end_form;
   print $cgi->end_html;
}

sub show_name {
   print $cgi->start_html;
   print $cgi->start_center;
   print $cgi->h1( $cgi->param('name') );
   print $cgi->end_center;
   print $cgi->end_html;
}

print $cgi->header( -charset => 'Windows-1251' );
if ( defined $cgi->param('name') ) {
    show_name;
} else {
    show_form;
}

Особое внимание прошу обратить на эту строку:
Код

print $cgi->start_form( -name => 'myform', -target => '_blank' );

особенно на зачение атрибута target тэга <FORM>

ЗЫ: В этом примере параметры передаются тому же скрипту. Если необходимо передать параметры другой программе, то просто дабавь атрибут action в тэг <FORM>.

Удачи ;)

Автор: Graf Zeppelin 10.4.2004, 10:32
Эээ, можно если не ошибаюсь просто подключить второй файл, и они будут как одно целое работать. Комманда require имя_файла. После этого все что ни напишешь будет работать с обеими программами. Тобишь переменные главной(к которой подключили) станут переменными второй и наоборот.

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