Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GET POST Perl 
V
    Опции темы
TwiSteR
  Дата 5.4.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



Приветствую уважаемые последователи Ларри Уолла,
Тщетно продолжаю переходить с PHP на Perl smile "Лирика"

А теперь такой вопрос как получить GET и POST в PERL ?

в PHP всё довольно просто smile

Код

$_GET && $_POST


Это сообщение отредактировал(а) TwiSteR - 5.4.2006, 09:49
--------------------
PM MAIL WWW ICQ   Вверх
korob2001
Дата 5.4.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



ООП подход:
Код

use CGI;
my $cgi = new CGI;
my $name = $cgi->param('name');
my $family = $cgi->param('family');

Процедурный подход:
Код

use CGI qw(:standard);
my $name = param('name');
my $family = param('family');

Можно и руками разбирать, но лучше всё же юзать один из приведённых способов.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
TwiSteR
Дата 5.4.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



korob2001,

В приведённых примерах GET POST не имеет значения ?
--------------------
PM MAIL WWW ICQ   Вверх
Kiber_rat
Дата 5.4.2006, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MACMANIAC
**


Профиль
Группа: Участник
Сообщений: 276
Регистрация: 18.4.2002
Где: Ashdod, Israel

Репутация: 7
Всего: 9



Вот еще одни способ, который я обычно использую
Код
use CGI qw(:standard);
my %Q = CGI::Vars();
Во всех примерах нет разницы как тебе передали параметры, однако для всяких секьрных вещей полезно знать как тебе передали значения. Для этого можно проверить переменную $ENV{REQUEST_METHOD}
Код
use CGI qw(:standard);
print header(),start_html();
if ($ENV{REQUEST_METHOD} ne 'POST') {
    print 'Hack Alert!';
    exit;
}
my %Q = CGI::Vars();
...



--------------------
Best regards!                                                             
@..@_____Ku6ep
=*=______\______KPbIC
Код
print join "",map{chr}(split/(\w{2})/,hex(int(2175.57302796298**2)))
PM WWW ICQ Skype Jabber YIM   Вверх
rcdimon
Дата 5.4.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Гет или пост значения не имеет. но если для тебя имеет, то можешь узнать каким образом были переданы данные
PM MAIL ICQ   Вверх
TwiSteR
Дата 5.4.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



Что-то тяжеловато, но идёт всётаки

Вот такой код набахал пока-что
index.pl
Код

use CGI;
use strict;
use DBI;


my $TOP = '';

print "Content-type: text/html\n\n";

my $cgi = new CGI;
my $act = $cgi->param('act');

eval { do("templates/html_tpl_1.pl") };

if($act ne '')
{
    if ($ENV{REQUEST_METHOD} ne 'GET') {
        print 'Hack Alert!';
        exit;
    }else{
    if($act eq 'order')
    {
        $TOP = 'Электроприбор :: Форма для заказа';
        print html_top($TOP);
        print html_hrefs();
            eval { do("templates/html_tpl_order_1.pl") };
            
            my $err = '';
        
            print html_order($err);
            
            my $sender_name = $cgi->param('sender_name');
            
            print $sender_name;
            print html_left();
            print html_bottom();
            
        }
        elsif($act eq 'about')
        {
            $TOP = 'Электроприбор :: О компании';
        print html_top($TOP);
        print html_hrefs();
            eval { do("templates/html_tpl_about_1.pl") };
        print html_about();
            print html_left();
            print html_bottom();
        }
        elsif($act eq 'contacts')
        {
            $TOP = 'Электроприбор :: Контакты';
        print html_top($TOP);
            print html_hrefs();
            eval { do("templates/html_tpl_home_1.pl") };
        print html_home_center();
            print html_left();
            print html_bottom();
        }
        elsif($act eq 'catalog')
        {
        $TOP = 'Электроприбор :: Каталог продукции';
        print html_top($TOP);
            print html_hrefs();
#        html_catalog();
            print html_left();
            print html_bottom();
        }else{
            print "Fuck off";
        }
    }
}
if($act eq '')
{
    $TOP = 'Электроприбор :: Главная';
    print html_top($TOP);
    print html_hrefs();
    eval { do("templates/html_tpl_home_1.pl") };
    print html_home_center();
    print html_left();
    print html_bottom();
}

if($dbh)
{
    $dbh->disconnect();
}

html_tpl_order_1.pl
Код

sub html_order
{
    my $err = shift @_;
    return <<EOF;
<br />
<center><b>Форма для заказа</b></center><br>
<center><font color=red><font class="title"><b>$err</b></font></font><br></center>
<FORM METHOD="POST" ACTION="index.pl?act=order" name="mutliact">
<table id="Table_02" width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<td>Ваше имя:<br/>
<INPUT type="text" NAME="sender_name" VALUE="" SIZE=39></td>
<td>Ваш E-mail:<br/>
<INPUT type="text" NAME="sender_email" VALUE="" SIZE=38></td>
</tr>
<tr>
<td><font color=white>d</font></td>
</tr>
<tr>
<td>Ваш адрес:<br/>
<INPUT type="text" NAME="sender_addr" VALUE="" SIZE=39></td>
<td>Контактный телефон:<br/>
<INPUT type="text" NAME="sender_phone" VALUE="" SIZE=38></td>
</tr>
</table>
<br />
Что Вы хотите заказать:
<br />
<TEXTAREA NAME="message" COLS=83 ROWS=10 maxlength=10 WRAP=virtual></TEXTAREA>
<br /><br />
<INPUT TYPE="submit" NAME="submit" VALUE="Отправить">
<INPUT TYPE="button" onClick="ClearAll()" NAME="clear" VALUE="Очистить">
<br/>
</FORM>
EOF
}


Так вот пытаюсь отправить POST через форму
Прописано ACTION="index.pl?act=order"

Но меня выкидывает на главную smile т.к. act не передаётся smile

Это сообщение отредактировал(а) TwiSteR - 5.4.2006, 15:04
--------------------
PM MAIL WWW ICQ   Вверх
korob2001
Дата 5.4.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Добавь к форме скрытое поле, а тот параметр, который ты указал в стрибуте action, act=order убери.
Код

<form method="post" action="/cgi-bin/index.pl" name="mutliact">
    <input type="hidden" name="act" value="order"/>
    <input type="submit" value="Отправить"/>
</form>



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
TwiSteR
Дата 5.4.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кибер красавчег
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 15.6.2005
Где: World->Russia

Репутация: нет
Всего: 2



Спасибо!

--------------------
PM MAIL WWW ICQ   Вверх
BlackLFL
Дата 12.4.2006, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



 можешь воспользоваться моим модулем

Black::CGI
Обсуждение модуля 

Это сообщение отредактировал(а) BlackLFL - 23.7.2008, 11:33
PM WWW   Вверх
xXvladXx
Дата 23.7.2008, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бездарь
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 9.3.2008

Репутация: нет
Всего: 1



Извините, в настоящий момент система недоступна. Попробуйте позже.
Не скачать твой модуль:(((

Это сообщение отредактировал(а) xXvladXx - 23.7.2008, 00:11
PM MAIL   Вверх
nitr
Дата 23.7.2008, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



xXvladXx, воспользуйтесь поиском, есть отдельная тема на форуме по этому модулю.

Добавлено через 42 секунды
xXvladXx, не надо поднимать темы двухгодичной давности, вы бы смотрели темы этого года. всё сразу б нашли...


--------------------
PM   Вверх
Jilian
Дата 23.7.2008, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 24.1.2005
Где: Минск

Репутация: нет
Всего: нет



Привет!
По этим вопросам ОЧЕНЬ подробно написано в книге  Прохоренка
http://perlbooks.narod.ru/

Сама сталкнулась с таким проблемами и решила их почитав оттуда пару статей.
PM MAIL   Вверх
AlexPet
Дата 24.7.2008, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 5.12.2007
Где: Брянск

Репутация: 1
Всего: 1



 smile 

Jilian, ну как, Вас взяли на работу? smile
PM MAIL ICQ Jabber   Вверх
Jilian
Дата 24.7.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 24.1.2005
Где: Минск

Репутация: нет
Всего: нет



на проект =)
взяли =)
сорри за оффтоп!

Добавлено через 2 минуты и 40 секунд
а вообще главное было иметь подвешенный язык и трындеть о чем знаешь =)
для кастомеров (они американцы) важно было понимание их речи ну и чтоб хоть немного знала по теме =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1387 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.