2009-06-15 12 views
6

मैं पर्ल सीजीआई प्रोग्राम में यूआरएल पैरामीटर कैसे पढ़ सकता हूं?मैं पर्ल सीजीआई प्रोग्राम में यूआरएल पैरामीटर कैसे पढ़ सकता हूं?

+5

स्टैक ओवरफ्लो कई लोगों के लिए एक गोटो है, और Google की कई खोजों के लिए "मैं भाग्यशाली महसूस करता हूं" अंक। तो ऊपर दी गई टिप्पणियां बेकार शोर हैं और टिप्पणियों के लिए डाउनवॉटिंग जोड़ने के लिए स्टैकएक्सचेंज के लिए विनती करती हैं। – ctpenrose

+1

सुनें सुनें। खासकर जब से, मेरे उत्तर से पता चलता है, सही उत्तर के लिए पर्याप्त मात्रा में विस्तार हो सकता है, और एक Google खोज जरूरी नहीं है कि वह इसे चालू करे – ysth

उत्तर

12

करें को अनुरोध करता है, CGI पार्स निर्दिष्ट मापदंडों और उन्हें param() विधि द्वारा उपलब्ध कराता है।

पोस्ट अनुरोध के लिए, param() POSTDATA से पैरामीटर वापस आ जाएगी, लेकिन स्वयं URL में एक क्वेरी स्ट्रिंग के माध्यम से निर्दिष्ट कोई पैरामीटर अभी भी url_param() विधि से उपलब्ध हैं। (यह उपयोगी हो सकता है जब POST अनुरोध $CGI::POST_MAX से बड़ा होता है; उस स्थिति में, CGI केवल पोस्टडेटा को त्याग देता है, लेकिन आप क्वेरी स्ट्रिंग पैरामीटर रखने की व्यवस्था कर सकते हैं जो यह पहचानता है कि एक अच्छा त्रुटि संदेश प्रदान करने के लिए किस प्रकार का अनुरोध था।)

ISINDEX शैली के लिए अनुरोध करता है, अनुरोध किया कीवर्ड keywords() विधि के माध्यम से उपलब्ध है, साथ ही एक छद्म "कीवर्ड" पैरामीटर में param() के माध्यम से कर रहे हैं।

अद्यतन: मामले में आप "URL पैरामीटर" द्वारा मानकों के अलावा कुछ, url() विधि सभी या अनुरोध किया गया URL के कुछ हिस्सों प्रदान करता है मतलब; OBTAINING THE SCRIPT'S URL देखें। निम्नलिखित

3

ऐसा नहीं है कि आप इस तरह के ysth ने उल्लेख के रूप में एक यूआरएल पार्सर का उपयोग, लेकिन अगर आप वास्तव में कच्चे इनपुट चाहते हैं, इसके माध्यम से उपलब्ध है अनुशंसा की जाती है:

$contents = $ENV{'QUERY_STRING'}; 
पोस्ट के लिए

:

प्राप्त के लिए

:

$contents = <STDIN>; 
3

इस प्रकार का प्रयास करें कोड:

my @names = $query->param; 
foreach $name (@names) { 
    if ( $name =~ /\_/) { 
     next; 
    } else { 
     print "<p> ".$name."\t=\t".$query->param($name) . "</p>\n"; 
    } 
} 
संबंधित मुद्दे