戻る

パラメータ付きリンクを受け取る

$_GET、$HTTP_GET_VARS

HTMLフォームからGETで送信されたデータは、入力されたフォーム部品のname属性と共にWebブラウザのアドレス欄に表示されます。ある意味で1つのURLとしてデータが送信されるわけです。この時、そのURLは次のような構成になっています。

ファイル名?データ1=値&データ2=値&データ3=値…

「ファイル名」は<form>タグのaction属性に指定されたデータ送信先のファイル名です。「?」はPHPファイルに渡されたパラメータ(フォームでの入力データ)です。各パラメータは「データ名=値」を1セットとして、「&」で区切られています。「データ名」はそれぞれのフォーム部品のname属性、「値」はフォームでの入力値です。

このGETの特性を利用すると、パラメータを含むURLを<a>タグのリンク先に記述しておくことによって、あらかじめ決められたデータ値をPHPファイルに送信することができます。この例では、「"receive.php?data1=10&data2=20&data3=ABCD"」のようなリンク先をHTMLファイルに記述することによって、data1、data2、data3の3つのデータをreceive.phpに渡しています。それぞれの<a>タグごとに渡すデータ値を変えています。もちろん、受け取り側のスクリプトでは、通常のHTMLフォームからのGETによるデータ受け取りと同じように処理を記述できます。

POSTでフォームのデータを渡す場合には、そのデータはアドレス欄には表示されません。画面上、入力されたデータを秘匿することができますが、<a>タグを使ってデータを渡すことはできません。

<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
好きなリンクをクリックしてください。
<ul>
	<li><a href="receive.php?data1=10&data2=20&data3=ABCD">10と20とABCD</a></li>
	<br><br>
	<li><a href="receive.php?data1=20&data2=80&data3=EFGH">20と80とEFGH</a></li>
	<br><br>
	<li><a href="receive.php?data1=88&data2=99&data3=WXYZ">88と99とWXYZ</a></li>
	<br><br>
</ul>
</body>
</html>

<?php
header("Content-type: text/html; charset=utf-8");

echo "受け取ったデータは<br>";

echo "data1→" . $_GET["data1"] . "<br>";
echo "data2→" . $_GET["data2"] . "<br>";
echo "data3→" . $_GET["data3"] . "<br>";
?>

inserted by FC2 system