PHP フォームの値をsubmitするサンプル

PHPのフォームの値をsubmitするサンプルです。

目次

環境

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

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

値を送信する側のファイルです。(index.php)
10行目は、methodでpost方式(※)を指定し、actionで送信先(testform.php)を指定しています。
このサンプルでは、testform.phpとindex.phpは同じフォルダに配置しています。
11行目は、テキストボックスです。画面から文字を入力します。
12行目は、送信ボタンです。ボタンを押すとsubmitします。

※9行目のコメントを外して10行目をコメントにするとget方式での送信になります。
<!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>

画面イメージ

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

値を受け取る側のファイル

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

※11行目をコメントにして10行目のコメントを外し、index.phpもget方式にするとgetで値を受け取れます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>submit</title>
</head>
<body >
<?php

//$moji1 = $_GET['text1'];
$moji1 = $_POST['text1'];

//サニタイジング
//$moji1 = htmlspecialchars($moji1);

print '入力した文字は';
print $moji1;
print 'です';

?>
</body>
</html>

画面イメージ

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

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

上記コードの場合、htmlタグが入力できてしまいます。
例えば、あいう<br>えおと入力すると以下のようにhtmlタグが機能して改行してしまいます。

htmlspecialchars関数

testform.phpのコードの14行目のコメントをはずし、htmlspecialchars関数を通すようにすると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

関連の記事

ローカルにPHPが動く環境を作る手順(XAMPP)
XAMPPのphpMyAdminでDB作成からデータ取得までのサンプル
PHP MySQLへ接続してselectするサンプル
PHP フォームからMySQLへ接続してselectするサンプル
「HTTPリクエスト」と「HTTPレスポンス」

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る