PHP 実験室 【覚書 フォームのデータを受け取ることができない】

PHP の設定ファイル「php.ini」の「register_globals」がONになっていれば、フォームのデータを受け取った際にフィールド名がそのまま変数として使えます。はい、何を言っていているのかわかりませんね。私も何を書いているのか分かりません。例を挙げましょう。

<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="text" name="piyo">
</form>

このように既述しておけば、フォームからのデータは勝手に「$piyo」の中に代入されている、というわけです。しかし、「php.ini」が「register_globals = off」となっていた場合は、この「$piyo」の中には何も代入されません。レンタルサーバ等に多いのですが、セキュリティを踏まえてこれを「OFF」に設定しているWeb サーバは多いようです。ただ、フリーのPHP素材は「register_globals = on」という前提で作られているものもあり、「ダウンロードしたけれども使えない」なんて状況になりますね。もし、サーバの管理者が「Apache」の「AllowOverride」の設定を「ALL」にしてくれているならば、「.htaccess」ファイルの中に以下の1行を加えて下さい。

php_flag register_globals on