外部から来る変数
もう既にご存知のように、ブラウザからの要求にはGETとPOST等があります。では、PHPでのこれらの処理の仕方を見てみましょう。
GET
直接ブラウザにURlを打ち込んだ場合はGET要求になります。明示的にメソッドを指定しない場合もGET要求になります。以下に、そのプログラム例test.php3を示します。
<?php print ($hoge); ?> これをサーバー上の適当なディレクトリにアップし、ブラウザから次のように入力します。
http://www.***.***.jp/~***/***/test.php3?hoge=Hello
すると、引数「Hello」を受け取ったtest.php3はブラウザに「Hello」と出力します。
GETで直接Webサーバーに送信できる文字は、半角英数字だけです。日本語などのマルチバイト文字は、当然GETで直接送信する事は出来ません。GETで日本語を送信したい時は、HTTPエンコードする必要があります。PHPでは、urlencode ( )関数やrawurlencode ( )関数で簡単にHTTPエンコードする事が出来ます。
*実際にどんな文字列になるのか試して見ましょう。以下のリンクからどうぞ_(._.)_
POST
GET要求以外によく使われるのが、POST要求です。POST要求はHTMLのFORM内で明示する必要があります。POSTでは、日本語フィールドも自動的にHTTPエンコードされて送信されます。具体的なプログラム例は、このホームページの「PHPプログラム陳列棚」の内容を参考にして下さい。
受け取り側はtextフィールド等で指定したnameの値を変数名として受け取ります。PHPの場合、これらの値は$変数名で簡単に受け取る事が出来ます。Perlのように、一旦フォームデータを受け取った後、分割処理をするような必要はありません。
PHP4.2.0以降の変更点
PHP4.2.0以降のバージョンでは、PHPの設定ファイルであるphp.iniの以下の設定の値が、これまでと違いデフォルトで「Off」になっています。
register_globals = Off
これは偏にセキュリティ強化の為の措置のようですが、このままでは以前のように「$変数名」と言う単純な形での外部データの取得が出来ません。もしお使いのサーバのPHPがこれに該当する場合は、POSTやGETで送られた値を取得する際の書式を以下のように変更して下さい。
POSTの場合…$_POST['変数名']
GETの場合…$_GET['変数名']
クラスとオブジェクト 前へ
次へ ファイルのアップロード