2009-06-15 53 views
6

如何讀取Perl CGI程序中的URL參數?如何讀取Perl CGI程序中的URL參數?

+5

Stackoverflow對於很多人來說都是一個goto,而Google的「我感覺很幸運」在這裏指向了幾次搜索。所以上面的這些評論是無用的噪音,並且要求stackexchange爲評論添加downvoting。 – ctpenrose 2012-10-19 21:05:14

回答

12

對於GET請求,CGI解析指定的參數並通過param()方法使它們可用。

對於POST請求param()將從POSTDATA返回的參數,但通過在URL查詢字符串中指定的任何參數仍然可以從url_param()方法。 (當POST請求大於$CGI::POST_MAX時,這可能會有幫助;在這種情況下,CGI只是放棄postdata,但您可以安排查詢字符串參數來確定提供良好錯誤消息的請求類型。)

對於ISINDEX風格要求,要求的關鍵字是通過keywords()可用的方法,以及通過在一個虛假的「關鍵詞」參數param()

更新:如果您的意思是「URL參數」以外的參數,url()方法提供了所有或部分請求的URL;見OBTAINING THE SCRIPT'S URL

3

我們建議您使用URL解析器如YSTH提到的,但如果你真的想要的原始輸入,它通過是具備以下條件:

爲GET:

$contents = $ENV{'QUERY_STRING'}; 

的POST:

$contents = <STDIN>; 
3

嘗試這樣的代碼:

my @names = $query->param; 
foreach $name (@names) { 
    if ( $name =~ /\_/) { 
     next; 
    } else { 
     print "<p> ".$name."\t=\t".$query->param($name) . "</p>\n"; 
    } 
} 
相關問題