セキュリティ上の理由から、通常はphp.iniファイルでは「register_globals = Off」に設定されており、送信元HTMLフォームの部品名を使った変数でデータを受け取ることはできません。そのような環境でも、import_request_variables()関数を使うと、HTMLフォームから送信されたデータを一般的な変数で受け取ることができます。例えば、送信元のHTMLフォームでname属性が「username」であるフォーム部品のデータを受け取りたい場合、その部品名を使った「&rcv_username」というような変数名として、そのデータを取り扱えます。
import_request_variables()関数では、第1引数に「"PG"」を指定します。これは、POSTの「P」とGETの「G」を表しており、POSTまたはGETで送信されたデータを変数に展開することを指示しています。例えば「"rcv_"」と指定した場合、「username」という名前(name属性)のフォーム部品のデータは「$rcv_username」という名前の変数で受け取ることができます。
<!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> 名前と住所を入力して「送信」ボタンをクリックしてください。 <form action="receive.php" method="GET"> 名前:<input type="text" size="40" name="username"><br> 住所:<input type="text" size="40" name="useraddress"><br> <input type="submit" value="送信"> </form> </body> </html>
<?php header("Content-type: text/html; charset=utf-8"); import_request_variables("PG", "rcv_"); echo "送信送信されたデータは<br>"; echo "名前→" . $rcv_username . "<br>"; echo "住所→" . $rcv_useraddress . "<br>"; ?>