ホームページ  >  記事  >  バックエンド開発  >  PHP register_globalsのOFFパラメータとONパラメータの違い

PHP register_globalsのOFFパラメータとONパラメータの違い

WBOY
WBOYオリジナル
2016-07-25 08:59:411120ブラウズ
  1. <フォーム名=”frmTest” id=”frmTest” アクション=”URL”>
  2. type=”password” name=”user_pass” id=”user_pass”>
  3. register_globals= の場合Off の場合、次のプログラムは $_GET['user_name'] と $_GET['user_pass'] を使用して、渡された値を受け入れる必要があります。 (注:
のメソッド属性が post の場合、$_POST['user_name'] と $_POST['user_pass'] を使用する必要があります)
register_globals=On の場合、次のプログラムは $user_name と $user_pass を直接使用して値を受け入れることができます。
つまり、register_globalsはグローバル変数として登録されているので、Onの場合は渡された値を直接グローバル変数として登録してそのまま利用することになり、Offの場合は特定の配列で取得する必要があります。 したがって、値を取得できないという上記の問題が発生した場合は、まず register_globals 設定が値を取得する方法と一致しているかどうかを確認する必要があります。 注: phpinfo() 関数を使用することも、php.ini を直接表示することもできます。

オフを使用する理由は次のとおりです。 1. PHP の新しいバージョンではデフォルトで Off が使用されますが、これを On に設定することもできますが、サーバーを制御できない場合はコードの互換性が大きな問題となるため、今すぐ Off スタイルでプログラミングを開始することをお勧めします。 2. 参考記事: http://bbs.it-home.org/shouce/php5/security.globals.html

質問: 以前に On スタイルで書かれた多数のスクリプトはどうすればよいですか? 初期の脚本計画がどのように進むかを見てみましょう。 config.inc.php などのパブリック インクルード ファイルがある場合は、このファイルに次のコードを追加してシミュレートします。

if ( !ini_get('register_globals') )

{

extract($_GET);
extract($_FILES); ;
抽出($_ENV);
  1. if ( isset($_SESSION) )
  2. }
  3. ?>

  4. register_globals = Off の状況は、
  5. から渡されるデータの取得方法と URL に影響するだけでなく、セッションと Cookie の取得方法も $_SESSION[]、$_COOKIE にする必要があります。同時に、session_register() が不要になり無効になるなど、セッション処理にもいくつかの変更があります。具体的な変更については、PHP マニュアルのセッション処理関数を確認してください。
  6. $_REQUEST の真ん中のコンテンツは実際には $_GET $_POST $_COOKIE から来ています。欠点は、変数が get post から来たのか cookie から来たのかを判断できないことです。これは、厳密な要件がある場合には適していません。
  7. register_globals についてのこの知識だけでも、非常に広範囲で奥が深いです。優れた PHP は本当に並外れたものです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。