PHP フォームの値を別画面に渡すサンプル

PHPのフォームの値をsubmitで別画面に渡すサンプルです。

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

目次

環境

説明用として以下2つのファイルがあります。
1.index.php・・・値を送信する側のファイル。画面でテキストを入力しsubmitを行って値を送信する。
2.testform.php・・・値を受け取る側のファイル。index.phpから値を受け取って画面に表示する。

サンプルでは、htdocsフォルダ配下にtest1フォルダを作成したので、ブラウザのURL欄には、http://localhost/test1/と入力します。

 

値を送信する側のファイル

値を送信する側のファイルです。(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>

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

※9行目のコメントを外して10行目をコメントにすると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>

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

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

画面イメージ

上記コードの画面イメージです。

 

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

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

 

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

リンク

以下はPHPマニュアルの$_GETのリンクです。
http://php.net/manual/ja/reserved.variables.get.php
以下はPHPマニュアルの$_POSTのリンクです。
http://php.net/manual/ja/reserved.variables.post.php

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

関連の記事

XAMPPをインストールする手順(Windows10)
PHP MySQLへ接続してselectするサンプル
PHP フォームからMySQLへ接続してselectするサンプル
「HTTPリクエスト」と「HTTPレスポンス」

△上に戻る