Как я могу прочитать параметр URL в программе Perl CGI?

Как я могу прочитать параметр URL в программе Perl CGI?


person joe    schedule 15.06.2009    source источник
comment
Stackoverflow подходит для многих, и я считаю, что Google повезло с несколькими поисковыми запросами. Таким образом, эти комментарии выше являются бесполезным шумом и просят stackexchange добавить голосование против комментариев.   -  person ctpenrose    schedule 20.10.2012


Ответы (3)


Для запросов GET CGI анализирует указанные параметры и делает их доступными. методом param().

Для запросов POST param() возвращает параметры из почтовых данных, но любые параметры, указанные через строку запроса в самом URL-адресе, по-прежнему доступны из метода url_param(). (Это может быть полезно, когда запрос POST больше, чем $CGI::POST_MAX; в этом случае CGI просто отбрасывает постданные, но вы можете настроить параметры строки запроса, которые идентифицируют тип запроса, чтобы обеспечить правильное сообщение об ошибке.)

Для запросов в стиле ISINDEX запрашиваемые ключевые слова доступны через метод keywords(), а также через param() в ложном параметре "keywords".

Обновление: если под «параметром URL» вы имели в виду что-то иное, чем параметры, метод url() предоставляет весь или часть запрошенного URL-адреса; см. ПОЛУЧЕНИЕ URL СЦЕНАРИЯ.

person ysth    schedule 15.06.2009

Рекомендуется использовать анализатор URL-адресов, такой как упомянутый ysth, но если вам ДЕЙСТВИТЕЛЬНО нужен исходный ввод, он доступен через следующее:

забывать:

$contents = $ENV{'QUERY_STRING'};

для ПОЧТЫ:

$contents = <STDIN>;
person Powerlord    schedule 15.06.2009

Попробуйте такой код:

my @names = $query->param;
foreach $name ( @names ) {
    if (  $name =~ /\_/ ) { 
        next;
    } else {
        print "<p> ".$name."\t=\t".$query->param($name) . "</p>\n";
    }
}
person avnit    schedule 27.06.2012