30 April 2011

GET/POST Method in Perl


module สำหรับ ใช้ get กับ post แยก subroutine กันนะครับ

DataParam.pm
package DataParam;

sub new
{
my $class = shift;
my $self = {};
bless($self,$class);
return $self;
}

sub GetParam
{
my $self = shift;
my $params = $ENV{'QUERY_STRING'};
my $data = {};
foreach (split(/&/,$params))
{
my ($key,$value) = split(/=/,$_);
#### บรรทัดล่างเอาไว้แปลงค่าอักษรที่เป็น % นำหน้า
$value =~ s/%(..)/chr(hex($1))/ge;
$data->{$key} = $value;
}
return $data;
}

sub PostParam
{
my $self = shift;
my $params;
read(STDIN,$params,$ENV{'CONTENT_LENGTH'});
my $data = {};
foreach (split(/&/,$params))
{
my ($key,$value) = split(/=/,$_);
#### บรรทัดล่างเอาไว้แปลงค่าอักษรที่เป็น % นำหน้า
$value =~ s/%(..)/chr(hex($1))/ge;
$data->{$key} = $value;
}
return $data;
}

1;

วิธีการใช้งาน
index.pl
#!c:\perl\bin\perl.exe

use strict;
use CGI;
use DataParam;

my $param = DataParam->new();
my $GET = $param->GetParam();
my $POST = $param->PostParam();

my $cgi = CGI->new();
print $cgi->header("text/html");

################## xxx กับ yyy คือชื่อตัวแปรที่ส่งมาครับ
print $POST->{'xxx'};
print $GET->{'yyy'};

0 comments:

Post a Comment