#レッツPHP!広報# PHP4.1.0以降では仕様が変わり、標準でregister_globals=offの設定となりました。(の最初の方で確認できます) offになっていると外部変数へのアクセスが出来ません。 ■修正の仕方 以前のスクリプトを、PHP4.1.0以降に対応させるには、 以下の文を、最初の いままでは$name , $regist に値が格納されていましたが... register_globals=offだと... $_POST[name] , $_POST[mode] に値が格納されます。(この場合$_POST[mode]=registです) 同様にCOOKIEの値や、サーバー変数、セッション値、環境変数が、 $_COOKIE, $_SERVER, $_SESSION, $_ENVという配列に格納されます。 特に$PHP_SELF→$_SERVER[PHP_SELF]には注意が必要です。 $_GET,$_POSTはスーパーグローバルと呼ばれ、function内でglobal宣言する必要はありません。 php.ini内でregister_globals=onにすれば、いままで通り動きますがあまりお勧めできません。(php.s3.toはOnにしてますが・・ ■参照リンク 「スーパーグローバル」 http://ns1.php.gr.jp/pipermail/php-users/2002-April/006600.html 「p-bbsa.phpの修正版」 http://php.s3.to/bbs/p-bbs-off.php.txt ■11/2 追記 pppbbsレス無し等はGET,POSTの順でないとうまく動きません。 extract($_GET); extract($_POST); さらに追記:上の2行はこれと同じです。 extract($_REQUEST); アップロード関係 $upfile = $_FILES["upfile"]["tmp_name"]; $upfile_name = $_FILES["upfile"]["name"]; $upfile_type = $_FILES["upfile"]["type"];