PHP フォームの値を別画面に渡す(GET/POST)

PHPのフォームの値を別画面に渡すサンプルです。POSTまたはGETを使用します。

確認環境
・PHP 7
・XAMPP 7.2.8
・Windows 10

目次

サンプル フォームの値を別画面に渡す
  値を送信する側のファイル(index.php)
  値を受け取る側のファイル(testform.php)
  サニタイジング(無害化)とは

フォームの値を別画面に渡す

やりたいこと

1.index.phpの画面で文字を入力しsubmitを行って値を送信します。

2.入力された文字をtestform.phpで表示します。

 

ファイルの配置場所

E:\xampp\htdocsフォルダ配下にtest1フォルダを作成しその中に上記2ファイルを配置しました。
http://localhost/test1/index.phpを入力するとindex.phpを表示します。
ファイルの文字コードは、UTF-8にします。

 

値を送信する側のファイル(index.php)

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>submit</title>
</head>
<body>
  <!-- <form method="get" action="testform.php"> -->
  <form method="post" action="testform.php">
    <input type="text" name="text1">
    <input type="submit" value="送信ボタン">
  </form>
</body>
</html>

9行目は、methodでpost方式を指定し、actionで送信先(testform.php)を指定しています。
10行目は、テキストボックスです。画面から文字を入力します。
11行目は、送信ボタンです。ボタンを押すとsubmitします。

※8行目のコメントを外して9行目をコメントにするとget方式での送信になります。

 

値を受け取る側のファイル(testform.php)

<?php
//$moji1 = $_GET['text1'];
$moji1 = $_POST['text1'];
function escape1($str)
{
  return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>submit</title>
</head>
<body>
  <p>入力した文字は、<?= escape1($moji1) ?></p>
</body>
</html>

3行目は、$_POSTでpostデータを受け取ります。
$_POST['text1']のtext1は、index.phpの10行目のinputタグのnameで指定された値です。
16行目は、変数の内容を表示します。

※3行目をコメントにして2行目のコメントを外し、index.phpもget方式にするとgetで値を受け取れます。

 

サニタイジング (無害化)とは

上記コードの6行目は、htmlspecialchars関数を通してhtmlタグの機能をサニタイジング (無害化)しています。例:「あいう<br>えお」と入力するとタグはそのままの形で出力されます。

サニタイジングしなかった場合は、以下のようにhtmlタグが機能して改行してしまいます。

以下はPHPマニュアルのhtmlspecialchars関数のリンクです。
http://php.net/manual/ja/function.htmlspecialchars.php

関連の記事

XAMPP インストールとHello Worldを表示
PHP MySQLへ接続してselectするサンプル
PHP フォームからMySQLへ接続してselectするサンプル
「HTTPリクエスト」と「HTTPレスポンス」

△上に戻る