Как я могу прочитать параметр URL в программе Perl CGI? - PullRequest
6 голосов
/ 15 июня 2009

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

Ответы [ 3 ]

12 голосов
/ 15 июня 2009

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

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

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

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

4 голосов
/ 15 июня 2009

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

для GET:

$contents = $ENV{'QUERY_STRING'};

для POST:

$contents = <STDIN>;
3 голосов
/ 28 июня 2012

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

my @names = $query->param;
foreach $name ( @names ) {
    if (  $name =~ /\_/ ) { 
        next;
    } else {
        print "<p> ".$name."\t=\t".$query->param($name) . "</p>\n";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...