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


Автор: jdoe 18.9.2009, 12:39
Док по CGI.pm сообщает:
The param() method will always return the contents of the POSTed fill-out form, ignoring the URL's query string.
Но работа param() ведь несколько иная: при GET-запросе возвращаются GET-параметры из URL, а при POST-запросе -- POST-параметры из полей форм. Или я где-то попался на "казнить нельзя помиловать"?

Автор: DEER 18.9.2009, 13:40
ща попробовал
Код

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<form action='/cgi-bin/123.cgi?from_query=Hi' method='post'>
<input type='hidden' name='post_param' value='123'/>
<input type='submit'/>
</form>
</body>
</html>

123.cgi
Код

#!/usr/bin/perl

use CGI qw(:standard);
use strict;

$|=1;
print header(-charset=>'Windows-1251');
print param('from_query');
print param('post_param');

игнорирует smile и get и post

Добавлено через 2 минуты и 2 секунды
а вот <a href='/cgi-bin/123.cgi?from_query=Hi'>ss</a>
не игнорирует.
наверно потому что форма не отправлялась.

Автор: arto 20.9.2009, 01:24
а вы пробовали?
у меня работает:

# GET "http://localhost/cgi-bin/123.cgi?from_query=Hi"
from_query: Hi
post_param:
# print "post_param=Hi" | POST "http://localhost/cgi-bin/123.cgi?from_query=Hi"
from_query:
post_param: Hi
# 



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