webdata
DX推進をサポートする技術者向け情報提供サイト

初心者向けPHP・データベース入門

TOP >初心者向けPHP・データベース入門 >2.5 PHPのデータ送受信

【PHP入門】PHPのデータ送受信

 2023-05-02 (更新日:2024-01-21)

<学習する内容>

 WebサイトにアクセスしているブラウザからWebサーバにデータを送信させる動きを理解します。

1)Webサーバにデータを送信する

得意先のデータを登録するにはWebサーバにそのデータを送らないといけません。
その方法として、PHPではHTTP POSTメソッドというものがありこちらを解説します。
下の送信ボタンをクリックします。そうするとwebサーバに変数「abcdef」が送信されこの画面に表示されます。 「消す」をクリックすると何もデータを送信しないので消えます。

ここに表示→ 

サンプルプログラム:post1.php
						<?php
						
						//POSTデータの受け取り
						$fnc = filter_input(INPUT_POST, 'fnc');
						
						echo <<<EOT
						<table>
							<tr>
								<td width="100">
							<form method="POST" action="{$_SERVER['PHP_SELF']}">
									<input type="hidden" name="fnc" value="abcdef">
									<input type="submit" value="送信" style="width:80px;">
							</form>
								</td>
								<td width="100">{$fnc}</td>
									<td width="100">
							<form method="POST" action="{$_SERVER['PHP_SELF']}">
									<input type="submit" value="消す" style="width:80px;">
							</form>
								</td>
								<td width="100" align="center"></td>
							</tr>
						</table>
						EOT;
						
						?>
						

<解説>
7行目から10行目は<form> ~ </form>で囲われてます。このタグがデータを送信します。
method="POST" 送信方法はPOST
他にGETもあるが今回解説は割愛します。
action="{$_SERVER['PHP_SELF']}"
     $_SERVER['PHP_SELF']
送信先を指定
現在表示されているページファイル名(PHP独自の変数)
<input type="hidden" name="fnc"
value="abcdef">
     type="hidden"
変数名fncの値(value)は abcdef とする。

この入力データは画面に表示させない。
<input type="submit" value="送信"
style="width:80px;">
     style="width:80px;"
submit"は送信、表示させる値(value)は「送信」と表示

「送信」ボタンの表示の長さを指定
4行目の記述は、送信されたをページの読み込み時に取り込みます。
表示させる前にPOSTデータの取り込みしますのでプログラムの上段の方に記述します。
$fnc = filter_input(INPUT_POST, 'fnc'); POSTの受取はfilter_input(INPUT_POST, 'fnc');
と記述。これを変数$fncに登録
消す方の14~16行目には、<input type="hidden" name="fnc" value="abcdef">記述がありません。
よって送信時には何もデータを送らないのでabcdefが消えてしまいます。
※HTML文内の変数は、{$_SERVER['PHP_SELF']} や{$a}のように中括弧で囲みます

次に実際文字を送信します。

サンプルプログラム:post2.php
						<?php
						
						//POSTデータの受け取り
						$moji = filter_input(INPUT_POST, 'moji');
						
						echo <<<EOT
						<table>
							<tr>
							<form method="POST" action="{$_SERVER['PHP_SELF']}">
								<td width="100">
									<input type="text" name="moji" value="{$moji}">
								</td>
								<td width="100">
									<input type="submit" value="送信" style="width:80px;">
							</form>
						</table>
						EOT;
						
						?>
						

<解説>
4行目
$moji = filter_input(INPUT_POST, 'moji'); POSTの受取はfilter_input(INPUT_POST, 'moji');
と記述。これを変数$mojiに登録
11行目
<input type="text" name="moji" value="{$moji}"> type="text"は送信するデータがテキスト文字を指定
name="moji"は変数名がmoji
value="{$moji}" 値は受け取った変数を表示
送信後ページが読み込まれているのに入力文字がそのまま表示されていることが確認できます。


次は入力画面を作成していきます。