フォーム送信の基本をマスターしよう (2/5)
作成:2010-12-04 14:29
更新:2010-12-04 14:30
更新:2010-12-04 14:30
■送信フォームと$_GET, $_POST
では、送信されたフォームの内容は、どこでどうやって受け取っているのか。それは冒頭にある<?php ?>タグ内にあります。ここで以下のような処理をしていますね?
今回はPOSTで送信したため、この$_POSTに内容がまとめられますが、もしGETで送信した場合には、$_GETという配列にまとめられます。この2つの連想配列が、フォームの内容を管理するためのものなのです。
この配列には、フォームの内容が、nameで指定された名前でまとめられています。ここでは、name="text1"という名前でタグが用意されていましたから、$_POST['text1']という形で値が保管されている、というわけです。
注意したいのは、この$_GET, $_POSTといったPHPのシステムが用意する配列は、「値を取り出すことしかできない」という点です。例えば、この値を書き換えてフォームに表示される値を設定しよう、なんて考えてもそれは無理です。これらはただ「送られたデータを渡すだけ」のもの、と考えてください。
ここでは、実はもう1つ、ちょっとしたテクニックを使ってあります。冒頭のスクリプトで、$resultにテキストを設定している部分を見てください。
ダブルクォート(")でくくられたテキストは、このように「変数の埋込み」を行うことができます。こうすることで、さまざまな変数などを使ってテキストを生成することができるのです。
では、逆に$strというテキストを出力させたいときは? このような場合には、シングルクォート(')を使ってテキストを作成します。シングルクォートのテキストでは、埋込みは行えません。すべて、書いた通りのテキストが得られるのです。
このテキストの2つの書き方の違いは、しっかり頭に入れておきましょう。
$str = $_POST['text1'];この$_POSTというのが、送信されたフォームの内容を保管する配列なのです。配列、覚えてますか? たくさんの値をまとめて管理することのできる特別な変数でしたね。配列はインデックス番号で、連想配列はキーという名前で値を管理していました。ということは、これは「連想配列」というわけですね。
今回はPOSTで送信したため、この$_POSTに内容がまとめられますが、もしGETで送信した場合には、$_GETという配列にまとめられます。この2つの連想配列が、フォームの内容を管理するためのものなのです。
この配列には、フォームの内容が、nameで指定された名前でまとめられています。ここでは、name="text1"という名前でタグが用意されていましたから、$_POST['text1']という形で値が保管されている、というわけです。
注意したいのは、この$_GET, $_POSTといったPHPのシステムが用意する配列は、「値を取り出すことしかできない」という点です。例えば、この値を書き換えてフォームに表示される値を設定しよう、なんて考えてもそれは無理です。これらはただ「送られたデータを渡すだけ」のもの、と考えてください。
■テキストの埋込みについて
ここでは、実はもう1つ、ちょっとしたテクニックを使ってあります。冒頭のスクリプトで、$resultにテキストを設定している部分を見てください。
$result = "あなたは、「{$str}」と書きました。";こんな具合に書かれていますね? この{$str}というのは、変数$strの値を埋めこんでいるのです。つまり、この部分に$strの内容が埋めこまれてテキストが作成される、ということです。
ダブルクォート(")でくくられたテキストは、このように「変数の埋込み」を行うことができます。こうすることで、さまざまな変数などを使ってテキストを生成することができるのです。
では、逆に$strというテキストを出力させたいときは? このような場合には、シングルクォート(')を使ってテキストを作成します。シングルクォートのテキストでは、埋込みは行えません。すべて、書いた通りのテキストが得られるのです。
このテキストの2つの書き方の違いは、しっかり頭に入れておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ