HTMLで入力されたデータを受け取り、PHPで処理してブラウザで表示してみましょう。
HTMLで入力フォームを作成する
データ送信側になるHTMLを作成します。簡単に下記コードを記述し.htmlファイルを保存してください。
head内で文字コードの指定も忘れずに記述してください。
<!DOCTYPE html>
<html>
<head>
<title>入力フォーム</title>
<meta charset="UTF-8" />
</head>
<body>
<p>名前を入力してください</p>
<form method="POST" action="output.php">
<input name="name" type="text">
<input type="submit" value="送信">
</body>
</hrml>
formで入力項目や送信ボタンを作成しました。actionに記述してあるoutput.phpというファイル名で受け取る処理をするphpを作成します。
phpは下記のように記述してください。
<?php
print $_POST['name'];
print "、ようこそPHPの世界へ";
?>
では例のごとくブラウザにhttp://localhost/phppractice/input.htmlと入力して表示してみましょう。
画像
表示できたら名前を入力します。
画像
どうでしょうか、正常に表示できましたか。もしエラーが表示された場合はソースファイルのコードを見直してみましょう。表示されたエラーの内容をよく見て、修正が必要な部分を見極めてください。
コードの解説
htmlではform要素のmethod属性やaction属性で送信方法を指定しました。action属性でデータの送信先を決めたので、その送信先のphpファイルで処理内容を記述しました。phpソースコードの内容は以下の通りです。
print $_POST[‘○○’]で受信したデータを取り出し表示する
printで表示させる内容に$_POST[‘name’]と記述しました。htmlでsubmitボタンで送信されたデータは$_POST[”]の中に入っており、入力値の名前にnameと付けたので$_POST[‘name’]と指定してnameというデータを取り出しているんですね。詳細な話は勉強していくうちに触れるので今はざっくりと覚えているだけでいいです。
行の終わりは;で終わる
PHPを書く上で先に知っておかなければいけなかったのですが、一つの処理を書いたら、その行の終わりには;を書いて終わらないといけません。これを書かずに次の処理を書いてしまうと前の処理の続きと認識されてしまい構文エラーが発生します。なのでキチンとセミコロンで終わりを教えてあげましょう。
phpでは改行されているように見えるけど表示では改行されていない
printを2行に渡って書いたので、名前の次の”、ようこそPHPの世界へ”は改行されて次の行に表示されると思った方もいるかもしれませんが、printは改行を含んでないのでphpではprintを各行それぞれに書いたとしても表示は1行でされるので覚えておきましょう。
まとめ
- form要素のaction属性にデータ送信先のファイルを記述する。
- 送信先ファイルに指定したファイル名と同じ名前で処理を行うファイルを作成する。
- formのPOSTで送信されたデータは$_POST[]に入っており、[]の中に取り出したいデータの名前を記述する。
- phpでは各処理の最後にセミコロン(;)を付ける。
コメント