POSTで送られたデータ処理

広告

次はフォームからPOSTを使って送られてきたデータの処理を行ってみます。基本的にはGETの場合と同じです。

GETの場合は$_GET変数に値が格納されていましたが、POSTの場合は$_POST変数に値が格納されています。よってフォームからのデータを取り出す場合は下記のように行います。

変数 = $_POST['フォームの部品に付けた名前'];

このようにフォームからのデータを受け取り側のPHPプログラムで取り出すことが出来ます。

下記のサンプルはGETの場合の時のサンプルとほぼ同じですが、フォームからの値を判別して画面への表示を変更しています。

mondai2.html

<html>
<head><title>PHP TEST</title></head>
<body>

<p>
問題:10×4=
</p>

<form method="POST" action="./kaitou2.php">
<input type="text" name="text1">
<input type="submit" name="btn1" value="回答">
</form>

</body>
</html>

kaitou2.php

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

$input_data = (int)$_POST['text1'];

if ($input_data == 40){
    print('正解です。おめでとうございます。');
}else{
    print('残念でした。もう一度チャンレンジして下さい。');

    print('<p>');
    print('問題:10×4=');
    print('</p>');

    print('<form method="POST" action="./kaitou2.php">');
    print('<input type="text" name="text1">');
    print('<input type="submit" name="btn1" value="回答">');
    print('</form>');
}

?>
</body>
</html>

上記の2つのファイルは同じディレクトリに設置してある前提で記述してあります。

まず「mondai2.html」をブラウザ経由で見て、テキストボックスに値を入力してボタンをクリックして下さい。

POSTのテスト

フォームの「action」に指定してある「kaitou2.php」にフォームのデータが送られ、その中に記述してあるPHPプログラムによってフォームからのデータが取得され画面に表示されます。もし答えが間違っていた場合には下記のように表示されます。

POSTのテスト

間違っていた場合は再度回答できるようにフォームを表示させています。そこで改めて今度は正解の値を入力してボタンをクリックしてみます。

POSTのテスト

POSTのテスト

正解だった場合には、その旨表示して終了です。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)