Denne artikkelen beskriver hvordan du tilgang til data fra en HTTP GET /POST Web forespørsel hjelp Perl.
Mens det er mange Perl-moduler er tilgjengelige (inkludert CPAN) som allerede inneholder slik funksjonalitet, viser følgende kode hvordan du henter data fra både en HTTP GET og HTTP POST forespørsel uten eksterne avhengigheter.
under populateQueryFields {% QueryString = (); min $ tmpStr = $ ENV {"QUERY_STRING"}; parts = split (/\\ & /, $ tmpStr); foreach $ del (parts) {($ navn, $ verdi) = split (del /\\ = /, $); $ QueryString {"$ name"} = $ verdi; }}
Under populatePostFields {% postFields = (); lese (STDIN, $ tmpStr, $ ENV {"CONTENT_LENGTH"}); parts = split (/\\ & /, $ tmpStr); foreach $ del (parts) {($ navn, $ verdi) = split (del /\\ = /, $); $ value = ~ (e /23% /\\ # /g); $ value = ~ (s /% 2F /\\ //g); $ postFields {"$ name"} = $ verdi; }}
PopulateQueryFields trekker alle navn /verdi-par fra en URL (GET forespørsel) inn i en hash som heter% QueryString. populatePostFields trekker alle data fra en POST-forespørsel (via STDIN) i en hash som heter% postFields. Eksempler:
Gitt følgende URL, http://www.mydomain.com/cgi-bin/script.pl?fname=Jason&lname=Plackey
& populateQueryFields; $ fornavn = $ QueryString {"fname"}; $ lastname = $ QueryString {"lname"};
Vil pull "Jason" og "Plackey" inn $ fornavn og $ lastname henholdsvis
Tilsvar, gitt en HTML-form->. POST-forespørsel, ... < FORM ACTION = "../cgi-bin /script.pl" method = "POST" > < INPUT TYPE = "text" name = "fname" > < INPUT TYPE = "text" name = "lname" > ... ≪ /FORM >
& populatePostFields; $ fornavn = $ postFields {"fname"}; . $ lastname = $ postFields {"lname"};
Vil nok en gang trekke de respektive data via HTML form inn i $ fornavn og $ etternavn felt
En ekstra oppmerksom: I populatePostFields rutine, der er to samtaler til s ///. Dette er valgfritt, og etterligner (lett) funksjonaliteten til en unEscape () eller urlDecode () type prosedyre. De spesifikke to samtaler i rutinen ovenfor erstatte "% 23" med en firkant (#) tegn og «% 2F" med en skråstrek (/). Disse kan bli endret som det passer deg.
Enjoy,
Jason Plackey Vice President of Business Development Raven2K Integrated Solutions http://www.raven2k.com [email protected] Anmeldelser
Hvordan få tilgang til GET /POST forespørsel data ved hjelp Perl
Previous:CRC Error Detection