POSTパラメータの取得

POSTパラメータの取得

POSTパラメータを取得する場合は"<>"キーワードより取得する

サンプル

test5a.cgi

#!"C:/Perl64/bin/perl.exe"
 
use strict;
use warnings;
 
print "Content-Type: text/html\n\n";
 
# タイトル
my $title = "テストタイトル";
my $data = "テスト Hello World";
 
print <<HTML_EOF;
<html>
	<head>
		<title>$title</title>
	</head>
	<body>
		<div>
			$data
		</div>
		<hr />
		<form action="./test05b.cgi" method="post">
			<div>
				aaa=<input type="text" name="aaa" value="" /><br />
				bbb=<input type="text" name="bbb" value="" /><br />
			</div>
			<br />
			<input type="submit" value="OK" />
		</form>
		<hr />
	</body>
</html>
HTML_EOF
 
 

HTML結果

<html>
	<head>
		<title>テストタイトル</title>
	</head>
	<body>
		<div>
			テスト Hello World
		</div>
		<hr />
		<form action="./test05b.cgi" method="post">
			<div>
				aaa=<input type="text" name="aaa" value="" /><br />
				bbb=<input type="text" name="bbb" value="" /><br />
			</div>
			<br />
			<input type="submit" value="OK" />
		</form>
		<hr />
	</body>
</html>
 
 

test5b.cgi

#!"C:/Perl64/bin/perl.exe"
 
use strict;
use warnings;
 
print "Content-Type: text/html\n\n";
 
# POSTパラメータ取得
my $_post = <>;
 
# 取得したPOSTパラメータをハッシュ型配列へ設定
my %list;
my @params = split /&/, $_post;
foreach my $var(@params){
    # キーとデータを分割
    my ($key, $value) = split(/=/, $var);
    $list{$key} = $value;
}
 
# タイトル
my $title = "テストタイトル";
my $data = "テスト Hello World";
 
print <<HTML_EOF;
<html>
	<head>
		<title>$title</title>
	</head>
	<body>
		<div>
			$data
		</div>
		<hr />
		<div>
			post=$_post
		</div>
		<hr />
HTML_EOF
 
while(my ($key, $value) = each(%list)){
    print "$key=$value<br />";
}
print <<HTML_EOF;
	</body>
</html>
HTML_EOF
 
 

HTML結果

<html>
	<head>
		<title>テストタイトル</title>
	</head>
	<body>
		<div>
			テスト Hello World
		</div>
		<hr />
		<div>
			post=aaa=1111&bbb=2222
		</div>
		<hr />
bbb=2222<br />aaa=1111<br />	</body>
</html>
 
 

画面結果

test5a.cgiでデータを入力して、Submitボタンを押下

test5b.cgiでPOSTデータを取得して、表示





最終更新:2012年01月16日 22:24