How can I read the URL parameter in a Perl CGI program?

自古美人都是妖i 提交于 2019-12-30 03:18:09

问题


How can I read the URL parameter in a Perl CGI program?


回答1:


For GET requests, CGI parses the specified parameters and makes them available via the param() method.

For POST requests, param() will return the parameters from the postdata, but any parameters specified via a query string in the URL itself are still available from the url_param() method. (This is can be helpful when a POST request is larger than $CGI::POST_MAX; in that case, CGI just discards the postdata, but you can arrange to have query string parameters that identify what kind of request it was to provide a good error message.)

For ISINDEX style requests, the keywords requested are available via the keywords() method, as well as via param() in a faux "keywords" parameter.

Update: in case you meant something other than the parameters by "URL Parameter", the url() method provides all or parts of the requested URL; see OBTAINING THE SCRIPT'S URL.




回答2:


It's recommended that you use a URL parser such as mentioned by ysth, but if you REALLY want the raw input, it's available through the following:

for GET:

$contents = $ENV{'QUERY_STRING'};

for POST:

$contents = <STDIN>;



回答3:


Try thus code:

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


来源:https://stackoverflow.com/questions/996698/how-can-i-read-the-url-parameter-in-a-perl-cgi-program

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!