Главная страница
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.015 c
15-1253478606
Юрий
2009-09-21 00:30
2009.11.15
С днем рождения ! 21 сентября 2009 понедельник


1-1224008956
DmitriyG.
2008-10-14 22:29
2009.11.15
Создание большого XML


15-1252764985
@!!ex
2009-09-12 18:16
2009.11.15
Как урезать установленную Windows XP?


15-1251295890
Суслик_
2009-08-26 18:11
2009.11.15
У кого есть права на правку шапки данного форума?


15-1253039747
GanibalLector
2009-09-15 22:35
2009.11.15
Самопроизвольная остановка службы "Телефония"