register_globals の使用法の詳細な説明

WBOY
リリース: 2016-06-21 09:15:09
オリジナル
1098 人が閲覧しました

詳しい説明

register_globals の使用方法の詳細な説明
register_globals は php.ini の構成です。この構成は、PHP が渡されたパラメーターを受け取る方法に影響します。「なぜ私のフォームはデータを渡せないのですか?」私のプログラムが渡された変数を取得できないのはなぜですか?待ってください。次の内容をよく読んでください。

register_globals の値は、オンまたはオフに設定できます。それぞれの違いを説明するコードを示します。

コード:


input type="password" name="user_pass" id="user_pass">



register_globals=Off の場合、次のプログラムは、渡された値を受け入れるために $_GET['user_name'] と $_GET['user_pass'] を使用する必要があります。 (注: のメソッド属性が post の場合、$_POST['user_name'] と $_POST['user_pass'] を使用する必要があります)

register_globals=On の場合、次のプログラムは $user_name と $_POST['user_pass'] を直接使用できます。 $user_pass を使用して値を受け入れます。

register_globals はその名の通り、グローバル変数として登録するという意味なので、On の場合は渡された値をそのままグローバル変数として登録して直接利用し、Off の場合は渡された値を取得する必要があります。特定の配列。したがって、値を取得できないという上記の問題に遭遇した友人は、まず register_globals 設定が値を取得する方法と一致しているかどうかを確認する必要があります。 (確認するには、phpinfo() 関数を使用するか、php.ini を直接確認できます)

それでは、なぜ Off を使用するのでしょうか?理由は 2 つあります:
1. PHP の新しいバージョンはデフォルトで Off を使用しますが、これを On に設定することもできますが、サーバーを制御できない場合はコードの互換性が大きな問題となるため、プログラミングを開始する必要があります。これからは Off スタイルです
2. On ではなく Off を使用する必要がある理由を説明する 2 つの記事です
http://www.linuxforum.net/forum/gshow flat.php?Cat=&Board=php3&Number=292803&page =0&view=collapsed&sb =5&o=all&fpart=
http://www.php.net/manual/en/security.registerglobals.php

ここで別の質問があります。以前に On スタイルで書かれた大量のスクリプトをどうするかということです。
前のスクリプトが適切に計画されており、config.inc.php などのパブリック インクルード ファイルがある場合は、このファイルに次のコードを追加してそれをシミュレートします (このコードは問題を 100% 解決するという保証はありません。広範囲にテストしたわけではありませんが、うまく機能すると思います)。さらに、この投稿 (http://www.chinaunix.net/forum/viewtopic.php?t=159284) のソリューションを参照することもできます。

コード:

if ( !ini_get('register_globals') )
{
extract($_GET);
extract($_FILES); ;
extract($_ENV);
extract($_COOKIE);

if ( isset($_SESSION) )
}
}
?> と URL から渡されるデータを取得する方法ですが、同様にセッションと Cookie を取得する方法も $_SESSION[]、$_COOKIE にする必要があります。同時に、session_register() が不要になり無効になるなど、いくつかの変更があります。具体的な変更については、PHP マニュアルのセッション処理関数を参照してください。 $_GET $_POST $_COOKIE の欠点は、変数が get post から来たのか cookie から来たのかを判断できないことであり、厳密な要件がある場合には適していません。
php マニュアルには次のように書かれています:

変数は GET、POST、COOKIE 入力メカニズムを介してスクリプトに提供されるため、信頼できません。この配列に含まれる変数の存在と順序は、PHP の variables_order 設定ディレクティブに従って定義されます。










関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート