戻る

受け取ったデータを次ページに渡す

この例では、最初にデータ入力用画面を表示して、次のページでは入力内容を確認し、さらに次のページで確定のメッセージを表示させるという流れで処理します。ポイントはHTMLフォームから入力された内容を確認した後、そのデータをさらに次のPHPファイルに渡している点です。その方法として、「hidden」属性をもった<input>タグで表現される「隠しフィールド」を使っています。value属性に受け取ったデータをそのまま持たせることで、そのデータを画面に表示させることなく、次のファイルへPOSTしています。

ただし、隠しフィールドとはいっても、HTMLソースを見ればその内容は知られてしまいます。ユーザにソースを見られるとセキュリティ上の問題が発生するケースでは、この方法ではなく、セッション管理によるデータの受け渡しを行うのが安全です。

最初の画面でテキストを入力して「送信」ボタンをクリックします。入力内容の確認画面が表示されたら「OK」をクリックすると、確定のメッセージ画面が表示されます。

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

if(!isset($_POST["btnExec"])){
	$html = "テキストボックスに値を入力して「送信」ボタンをクリックしてください。";
	$html .= "<form action=\"" . $_SERVER["PHP_SELF"] . "\" method=\"POST\">";
	$html .= "<input size=\"40\" type=\"text\" name=\"inputdata\">";
	$html .= "<input type=\"submit\" name=\"btnExec\" value=\"送信\">";
}
else{
	if(strlen($_POST["inputdata"]) > 0){
		echo "テキストボックスに入力されたデータは「";
		echo $_POST["inputdata"];
		echo "」です!<br><br>";
		echo "確定してよろしければ「OK」ボタンをクリックしてください。";
		
		$html = "<form action=\"complete.php\" method=\"POST\">";
		$html .= "<input type=\"hidden\" name=\"inputdata\" value=\"" . $_POST["inputdata"] . "\">";
		$html .= "<input type=\"submit\" name=\"btnExec\" value=\"OK\">";
	}
	else{
		$html = "テキストボックスは空欄です!再入力してください。<br><br>";
		$html .= "<form action=\"" . $_SERVER["PHP_SELF"] . "\" method=\"POST\">";
		$html .= "<input size=\"40\" type=\"text\" name=\"inputdata\">";
		$html .= "<input type=\"submit\" name=\"btnExec\" value=\"送信\">";
	}
}
?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?=$html?>
</body>
</html>

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

echo "入力データは「" . $_POST["inputdata"] . "」に確定されました!";
?>

inserted by FC2 system