Как я могу прочитать параметр URL в программе Perl CGI?
Как я могу прочитать параметр URL в программе Perl CGI?
Ответы (3)
Для запросов GET CGI анализирует указанные параметры и делает их доступными. методом param()
.
Для запросов POST param()
возвращает параметры из почтовых данных, но любые параметры, указанные через строку запроса в самом URL-адресе, по-прежнему доступны из метода url_param()
. (Это может быть полезно, когда запрос POST больше, чем $CGI::POST_MAX
; в этом случае CGI просто отбрасывает постданные, но вы можете настроить параметры строки запроса, которые идентифицируют тип запроса, чтобы обеспечить правильное сообщение об ошибке.)
Для запросов в стиле ISINDEX запрашиваемые ключевые слова доступны через метод keywords()
, а также через param()
в ложном параметре "keywords".
Обновление: если под «параметром URL» вы имели в виду что-то иное, чем параметры, метод url()
предоставляет весь или часть запрошенного URL-адреса; см. ПОЛУЧЕНИЕ URL СЦЕНАРИЯ.
Рекомендуется использовать анализатор URL-адресов, такой как упомянутый ysth, но если вам ДЕЙСТВИТЕЛЬНО нужен исходный ввод, он доступен через следующее:
забывать:
$contents = $ENV{'QUERY_STRING'};
для ПОЧТЫ:
$contents = <STDIN>;
Попробуйте такой код:
my @names = $query->param;
foreach $name ( @names ) {
if ( $name =~ /\_/ ) {
next;
} else {
print "<p> ".$name."\t=\t".$query->param($name) . "</p>\n";
}
}