PHPのバージョンによるご注意
PHPのバージョンが4.1.X以前の場合は、フォームのデータを受け取る際の仕様が異なります。
$_POSTと書かれている部分を$HTTP_POST_VARSに、$_SERVERを$HTTP_SERVER_VARSと書きなおすことによって動作します。
フォームから文字を出力してみよう
下のソースでPHPファイルを作り、動かしてみましょう。名前と性別が表示されます。
・ソース
念の為、HTMLのフォームについて簡単に説明致します。
HTMLのフォームは、<form>タグで囲まれた、フォームの内容(<input>タグで記述された部分)を、<form>タグのaction属性に指定したファイルに送信します。
このサンプルでは、フォームデータの送信先を、$_SERVER['PHP_SELF']にしています。
これは、PHPで特殊な意味を持った変数(サーバー変数)で、自分自身のファイルのパスの情報が入っています。つまり、このスクリプトではフォームの送信先とフォームの入力が同じという意味で、送信後の処理もそのフォームのファイル地震が行っているということになります。(もちろん他のファイルを指定することも可能です)
また、フォームの送信方法は、2つあり「POST」形式と「GET」形式があります。この送信方法は、<form>タグのaction属性で「method="POST"」や「method="GET"」と記入します
| 2つの送信形式の違い |
| GET |
URLの後ろにデータを付けて送ります。(環境変数のQUERY_STRINGと呼ばれています)
サーチエンジンのほとんどはGETを使用しています。検索結果のURLが非常に長くなるのは、GETによりURLでデータを送っているからです。URLを使って送るため、データ量に制限があります。データを「GET(取得)」する際によく利用されます |
| POST |
ちょっと難しく言うと「HTTP ヘッダのボディ部でデータを送信する」という意味ですが、「データの制限が特になくそのまま送信」というイメージで覚えていただければ問題ないと思います。データを「POST(送る)」する際に、よく利用されます |
※その他サーバー変数
フォームとは、あまり直接関係ありませんが、豆知識として何種類かのサーバー変数をご紹介致します。
| 記述方法 |
意味 |
| $_SERVER['HTTP_USER_AGENT'] |
ブラウザの情報 |
| $_SERVER['HTTP_REFERER'] |
一つ前のページのURL |
| $_SERVER['QUERY_STRING'] |
URLで渡された値(URLの?マーク以下) |
| $_SERVER['HTTP_ACCEPT_LANGUAGE'] |
言語(日本語の場合は「ja」) |
| $_SERVER['REMOTE_ADDR'] |
閲覧者のIPアドレス |
PHPによるPOSTデータの取得方法
それでは本題に戻りますが、PHPはフォームの"POST"メソッドで送られたデータが$_POSTという配列の中に入ります。
たとえば、<input type="text" name="yourName">から送られたデータというのは、$_POST['yourName']の中に入るわけです。これを前提に話を進ませていきますと、
if($_POST['submit']) { ・・・・・
の部分は、「もし、送信ボタンが押されたら・・・」という意味を示しています。つまり、送信ボタンのnameが"submit"ですので、$_POST[submit]に値が入っているかどうかを調べています。
ボタンが押された後は、入力内容の出力処理になります。
これは、一つ一つのPOSTのデータを出力していくだけです。ちなみに、性別の部分ですが、これはHTMLムの中にデフォルトで value="男" といったデータを入れています。ラジオボタンやチェックボックスなどでこれが指定されている場合は、このデータが送られてくる形になります。
いたずら防止をしよう
このままの状態では、フォームの中に< > で括ったタグが書けてしまい、フォームの中に、悪意のあるJavaScript等を書いたら取り返しのつかないことになるかもしれません。大きなセキュリティホールにもなりかねないので、$_`POSTで送られたデータをhtmlspecialchars()という関数を使ってタグとして解釈しないようにします。
htmlspecialchars()の使い方は以下の通りです。本来なら、赤い文字で出力される文章が、タグが通常の文字列のように表示されます。これは、< や>などの文字列が、<や> といったHTMLのエンティティに変換されているからです。
・ソース
|
|
また、このようないたずらは、クロスサイトスクリプティングと言われWeb上のセキュリティホールとして注目されています。
情報処理振興事業協会からレポートが出ておりますので、こちらをご覧下さい。
http://www.ipa.go.jp/security/ciadr/20011023css.html
オススメ!PHPが使える格安レンタルサーバーのご紹介
| PHPが利用可能で値段が月々833円という格安のレンタルサーバーです。SSHでのアクセスも可能な上、MySQLも使えるので、ちょっとしたデータベース系のサイトの構築も可能です。充実したコントロールパネルや、無制限のPOP3アカウントなど、レンタルサーバーとして基本的な機能も揃っています。 |
 |
| 本格的なWebサイトの運用を考えている方や法人の方には、専用サーバーがお勧めです。専用サーバーとは、1台のサーバーを1人のユーザーのみで運用が出来るサービスで、100人前後で切り分けて利用するレンタルサーバーに比べて安定した運用が可能になります。ページビューが多いサイトや、プログラムを使った高負荷なサイトに最適です。
(2003/06現在) |
|
オススメ!分かりやすいPHP関連書籍を最短24時間でお届け!

|