如何在 Perl CGI 程序中读取 URL 参数?
问问题
31201 次
3 回答
13
对于GET 请求,CGI解析指定的参数并通过该param()
方法使它们可用。
对于POST 请求,param()
将返回来自 postdata 的参数,但通过 URL 本身中的查询字符串指定的任何参数仍可从该url_param()
方法获得。(当 POST 请求大于 时,这会很有帮助$CGI::POST_MAX
;在这种情况下,CGI 只会丢弃 postdata,但您可以安排查询字符串参数来识别它是什么类型的请求,以提供良好的错误消息。)
对于ISINDEX 样式的请求,请求的关键字可以通过keywords()
方法获得,也可以通过param()
虚假的“关键字”参数获得。
更新:如果您的意思不是“URL 参数”的参数,该url()
方法将提供所请求的 URL 的全部或部分;请参阅获取脚本的 URL。
于 2009-06-15T15:21:07.727 回答
4
建议您使用 ysth 提到的 URL 解析器,但如果您真的想要原始输入,可以通过以下方式获得:
忘记:
$contents = $ENV{'QUERY_STRING'};
对于 POST:
$contents = <STDIN>;
于 2009-06-15T15:28:22.047 回答
3
试试这样的代码:
my @names = $query->param;
foreach $name ( @names ) {
if ( $name =~ /\_/ ) {
next;
} else {
print "<p> ".$name."\t=\t".$query->param($name) . "</p>\n";
}
}
于 2012-06-27T20:12:01.540 回答