PHP/HTMLフォームからのデータ受け取り

出典: フリー教科書『ウィキブックス(Wikibooks)』
< PHP
ナビゲーションに移動 検索に移動

たとえば、htmlファイルとして

<form action="catchTest.php" method="post">
ユーザー名を登録: <input type="text" name="username">
<input type="submit" value="登録">
</form>


のようなhtmlファイルを書き、◯◯.html でドキュメントルートにアップロードする。

なお、このコードの表示するページは、

ユーザー名を登録:           登録 

みたいなページである。


webブラウザで見たときに「登録」と書いてあるボタン 登録 を押すと、ページが切り替わり、「catchTest.php」から作成されたhtmlファイルのwebページに切り替わる。

form action="catchTest.php" method="post" のプロパティ内容にしたがって、そういう処理がされている。


input タグは、単に、入力欄をwebページに配置する機能で、         みたいな入力欄が配置される。


登録

inputタグのname プロパティは、ページ外部とデータのやり取りをするための名前。


しかし、これだけだと、まだPHPファイルが無い。

PHPコード例
<?php
	echo "あなたはユーザー名", $_REQUEST['username'], "で登録しました。" ; 
?>

このように、 $_REQUEST['名前'], でHTMLフォームからの入力を受け取れる。もちろん、引数の名前は、html側で、inputタグのnameプロパティで定義したものでなければならない。

さきほどの登録ボタンのあるページで、ボタンを押すと

あなたはユーザー名 ◯◯ で登録しました。

というふうに、◯◯の部分にインプットボックスにある文字列を入れた結果が出て来る。


なお、遷移先のphpのページでブラウザのソース表示の機能を使用しても

(自動作成されたHTMLソースコード)
◯◯と入力されました。入力されたユーザー名を保存しています。

(◯◯の部分には、入力した文字列が入る)のように、サーバーによって生成されたhtmlが表示されるだけであり、もとのPHPソースコードはサーバー側には表示されない。


また、ブラウザで直接

http://localhost/catchTest.php

にアクセスしても、

(webブラウザのメイン画面表示)
と入力されました。入力されたユーザー名を保存しています。 

と表示されるだけである。


そのページのソースコードをwebブラウザで見ても、

(自動作成されたHTMLソースコード)
と入力されました。入力されたユーザー名を保存しています。

と表示されるだけである。


変数名などはブラウザ側では表示されないが、echoのテキスト文字列などは表示されてしまうので、けっして機密情報などをechoテキスト文字列に入れないように注意する必要がある。

念のため、サーバーアプリ作成後にはソースを見てみるのが安全である。