PHPでの入力フォーム作成


PHPでの入力フォーム作成について

以下のような入力フォームをPHPで作成し、
別ファイルへ出力するようにした。

ソースコード(ファイル名index.php)

<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<form action="submit.php" method="get" >
<p> 名前: <input type="text" name="your_name" value=""></p>
<p> 年齢: <input type="text" name="your_age" value=""></p>
<input type="submit" >
</form>
</body>
</html>

名前と年齢を入力して、送信ボタンを押すと以下の通り、出力される(出力ファイル名:submit.php)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<p><?php echo $_POST["your_name"] ?>です</p>

<p>年齢は<?php echo $_POST["your_age"] ?>です</p>
</body>
</html>

今回はGETでサンプルコードを記載したが、GETをPOSTに変更すれば同様に出力される。

GETとPOSTの違い

GETについて

GETでデータを取得した場合、URLの後ろに送りたいデータを付与して、送信する。
以下の通り、入力した名前と年齢がURLに反映されている。

GETを使う場合、URLにデータが残ってしまうというデメリットあり

POSTについて

POSTを使用する場合、HTTPリクエスト内のメッセージボディにデータを含めて送信する。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<form action="submit.php" method="post" >
<p> 名前: <input type="text" name="your_name" value=""></p>
<p> 年齢: <input type="text" name="your_age" value=""></p>
<input type="submit" >

</form>
</body>
</html>

postでデータを取得した場合、URLには送信したデータが記載されない。
URLに記載されるべきではない情報(PW等のログイン情報)がPOSTで送信される。