Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.15;
Скачать: CL | DM;

Вниз

Еще про GET и POST. Но уже на Perl   Найти похожие ветки 

 
pe@rl   (2009-09-18 11:55) [0]

В описании стандартного CGI.pm говорится:
The param() method will always return the contents of the POSTed fill-out form, ignoring the URL"s query string.
Но если запустить страничку:
hxxp://localhost/cgi-bin/test.pl?blablabla=1&foo=7
то имея test.pl следующего содержания:
#!C:/Perl/bin/perl
use CGI();
my $q = new CGI;
print
$q->header,
$q->start_html("POST and GET test"),
join(", ", $q->param),
$q->end_html;

получаю ответ:
lablabla, foo
Но почему так? Ведь документация говорит, что их здесь не должно быть!


 
McSimm ©   (2009-09-18 13:10) [1]

Зависит от метода
Если обратиться к этому URL методом POST, то будет как в документации, - param() вернет POST данные. Добраться до GET можно будет с помощью url_param()


 
pe@rl   (2009-09-18 13:24) [2]

Стало быть, либо документация не совсем корректно описывает поведение этой функции/метода?


 
pe@rl   (2009-09-18 13:32) [3]

$мой_предыдущий_пост =~ s/ либо//; # :-)


 
McSimm ©   (2009-09-18 14:39) [4]


> документация не совсем корректно описывает поведение этой
> функции/метода?

Нет, это просто фраза вне контекста так звучит (контекст - Mixing POST and URL Parameters). То что param() работает и с данными GET описывается выше
Место, на которое вы ссылаетесь, описывает как быть в случае смешанной передачи - когда методом POST отправляют данные на URL с параметрами.


 
pe@rl   (2009-09-18 17:23) [5]


> То что param() работает и с данными GET описывается выше

вы, наверное, говорите об этом:
If the script was invoked with a parameter list (e.g.
"name1=value1&name2=value2&name3=value3"), the param()
method will return the parameter names as a list.

Но на деле же вполне типична ситуация, когда данные скрипту передаются одновременно и по POST и по GET. Из документации совершенно не ясно что в таком случае будет возвращать метод/функция param(). На лицо ambiguity!


 
McSimm ©   (2009-09-18 18:11) [6]


> Но на деле же вполне типична ситуация, когда данные скрипту
> передаются одновременно и по POST и по GET. Из документации
> совершенно не ясно что в таком случае будет возвращать метод/функция
> param().

Именно это описывается в разделе Mixing POST and URL Parameters.
В этом случае (согласно документации) param() возвращает данные POST, а данные URL доступны с помощью url_param()

О какой двусмысленности речь - непонятно.



Страницы: 1 вся ветка

Текущий архив: 2009.11.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
2-1254154087
leron
2009-09-28 20:08
2009.11.15
Полная перерисовка окна


2-1254463160
mfender
2009-10-02 09:59
2009.11.15
Какая-то чуднАя ошибка в Application.CreateForm


2-1254387158
TRSteep
2009-10-01 12:52
2009.11.15
Работа с web (парсинг)


6-1209555293
leechdraw
2008-04-30 15:34
2009.11.15
Как отправть письмо со вложением?


15-1253028542
TUser
2009-09-15 19:29
2009.11.15
Нет ли у кого-нибудь совсем старого железа?