定義済ã¿ã®å¤‰æ•°
PHPã¯ã€å®Ÿè¡Œã™ã‚‹å…¨ã¦ã®ã‚¹ã‚¯ãƒªãƒ—トã«å®šç¾©æ¸ˆã¿ã®å¤šãã®å¤‰æ•°ã‚’
æä¾›ã—ã¾ã™ã€‚ã—ã‹ã—ã€ã“れらã®å¤‰æ•°ã®å¤šãã¯ã€
実行ã™ã‚‹ã‚µãƒ¼ãƒãƒ¼ã®ç¨®é¡žã€ã‚µãƒ¼ãƒãƒ¼ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŠã‚ˆã³è¨å®šã€
ãã®ä»–ã®è¦ç´ ã«ä¾å˜ã—ã¦ãŠã‚Šã€å®Œå…¨ã«è¨˜è¿°ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。
ã“れらã®å¤‰æ•°ã®ã„ãã¤ã‹ã¯ã€PHPã‚’
コマンドライン
ã§å®Ÿè¡Œã—ãŸå ´åˆã«ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。
ã“れらã®å¤‰æ•°ã®ä¸€è¦§ã«ã¤ã„ã¦ã¯ã€
予約済ã¿ã®å®šç¾©æ¸ˆã¿ã®å¤‰æ•°
ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
è¦å‘Š |
PHP 4.2.0以é™ã§ã¯ã€PHPディレクティブ register_globalsã®
デフォルト値ãŒoffã«å¤‰æ›´ã•れã¦ã„ã¾ã™ã€‚
ã“れã¯ã€PHPã«ãŠã‘る大ããªå¤‰æ›´ã§ã™ã€‚
register_globalsã‚’offã«ã™ã‚‹ã¨ã€
ã‚°ãƒãƒ¼ãƒãƒ«ã‚¹ã‚³ãƒ¼ãƒ—ã«å®šç¾©æ¸ˆã¿ã®å¤‰æ•°ã«å½±éŸ¿ã‚’与ãˆã¾ã™ã€‚
例ãˆã°ã€DOCUMENT_ROOTã‚’å–å¾—ã™ã‚‹ã«ã¯ã€
$DOCUMENT_ROOTã®ã‹ã‚りã«
$_SERVER['DOCUMENT_ROOT']を使用ã™ã‚‹ã“ã¨ã«
ãªã‚Šã¾ã™ã€‚ã¾ãŸã€URL
http://www.example.com/test.php?id=3 ã‹ã‚‰
$idã®ä»£ã‚りã«$_GET['id']ã€
$HOMEã®ã‹ã‚りã«$_ENV['HOME']ã‚’
使用ã—ã¾ã™ã€‚
ã“ã®å¤‰æ›´ã«é–¢ã™ã‚‹æƒ…å ±ã«ã¤ã„ã¦ã¯ã€
register_globalsã«é–¢ã™ã‚‹è¨å®š
エントリã€ã‚»ã‚ュリティã«é–¢ã™ã‚‹ç« ã®
register_globalsã®ä½¿ç”¨ã€
ã¾ãŸã€4.1.0ãŠã‚ˆã³
4.2.0ã®
Release Announcementsã‚’å‚ç…§ã—ã¦ä¸‹ã•ã„。
スーパーグãƒãƒ¼ãƒãƒ«
é…列ã®ã‚ˆã†ãªPHPã®äºˆç´„済ã¿ã®å®šç¾©æ¸ˆã¿å¤‰æ•°ã‚’使用ã™ã‚‹ã“ã¨ãŒ
推奨ã•れã¾ã™ã€‚
|
ãƒãƒ¼ã‚¸ãƒ§ãƒ³4.1.0以é™ã€PHPã«(使用ã™ã‚‹å ´åˆ)Webサーãƒã€ç’°å¢ƒå¤‰æ•°ã€
ユーザ入力ã‹ã‚‰ã®å¤‰æ•°ã‚’値ã¨ã™ã‚‹å®šç¾©æ¸ˆã¿ã®é…列ãŒè¿½åŠ ã•れã¦ã„ã¾ã™ã€‚
ã“ã‚Œã‚‰ã®æ–°ã—ã„ã¯é…列ã¯ã€è‡ªå‹•ã‚°ãƒãƒ¼ãƒãƒ«ã€ã™ãªã‚ã¡ã€è‡ªå‹•çš„ã«å…¨ã¦ã®
スコープã§åˆ©ç”¨å¯èƒ½ã§ã™ã€‚ã“ã®ãŸã‚ã€ã“れらã¯ã€ã—ã°ã—ã°
'autoglobals' ã¾ãŸã¯ 'superglobals' ã¨ã—ã¦çŸ¥ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚
(PHPã«ã¯ã€ãƒ¦ãƒ¼ã‚¶å®šç¾©ã®ã‚¹ãƒ¼ãƒ‘ーグãƒãƒ¼ãƒãƒ«ã¨ã„ã†æ©Ÿæ§‹ã¯ã‚りã¾ã›ã‚“。)
スーパーグãƒãƒ¼ãƒãƒ«ã®ãƒªã‚¹ãƒˆã‚’以下ã«ç¤ºã—ã¾ã™ã€‚
ã—ã‹ã—ã€ã“れらã®å†…容ã®ãƒªã‚¹ãƒˆãŠã‚ˆã³å®šç¾©æ¸ˆã¿ã®PHP変数ã¨ãれらã®ç‰¹æ€§ã«
é–¢ã™ã‚‹æ›´ãªã‚‹è°è«–ã«ã¤ã„ã¦ã¯ã€
定義済ã¿ã®äºˆç´„変数ã®
セクションをå‚ç…§ã—ã¦ãã ã•ã„。
よりå¤ã„定義済ã¿ã®å¤‰æ•°($HTTP_*_VARS)ã‚‚ã¾ã
å˜åœ¨ã—ã¾ã™ã€‚
variables_orderã«
ã‚る変数ãŒè¨å®šã•れã¦ã„ãªã„å ´åˆã€ã“れらã«å¯¾å¿œã™ã‚‹PHPã®å®šç¾©æ¸ˆã¿
変数も空ã®ã¾ã¾ã¨ãªã‚Šã¾ã™ã€‚
PHP スーパーグãƒãƒ¼ãƒãƒ«
- $GLOBALS
スクリプトã®ã‚°ãƒãƒ¼ãƒãƒ«ã‚¹ã‚³ãƒ¼ãƒ—ã®ä¸ã§ç¾åœ¨åˆ©ç”¨å¯èƒ½ãªå…¨ã¦ã®
変数ã¸ã®ãƒªãƒ•ァレンスをå«ã¿ã¾ã™ã€‚ã“ã®é…列ã®ã‚ーã¯ã€ã‚°ãƒãƒ¼ãƒãƒ«
変数ã®åå‰ã§ã™ã€‚
$GLOBALS ã¯ã€PHP 3以é™å˜åœ¨ã—ã¾ã™ã€‚
- $_SERVER
Webサーãƒãƒ¼ã¾ãŸã¯ã‚«ãƒ¬ãƒ³ãƒˆã®ã‚¹ã‚¯ãƒªãƒ—トã®å®Ÿè¡Œç’°å¢ƒã«ç›´æŽ¥é–¢ä¿‚ã™ã‚‹
ã‚‚ã®ã«ã‚ˆã‚Šè¨å®šã•れãŸå¤‰æ•°ã€‚以å‰ã®(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€æŽ¨å¥¨
ã•れã¾ã›ã‚“) $HTTP_SERVER_VARSé…列ã«
類似ã®ã‚‚ã®ã§ã™ã€‚
- $_GET
HTTP GETã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—トã«å…¥åŠ›ã•れãŸå¤‰æ•°ã€‚以å‰ã®
(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€æŽ¨å¥¨ã•れã¾ã›ã‚“)
$HTTP_GET_VARSé…列ã«é¡žä¼¼ã®ã‚‚ã®ã§ã™ã€‚
- $_POST
HTTP POSTã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—トã«å…¥åŠ›ã•れãŸå¤‰æ•°ã€‚以å‰ã®
(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€æŽ¨å¥¨ã•れã¾ã›ã‚“)
$HTTP_POST_VARSé…列ã«é¡žä¼¼ã®ã‚‚ã®ã§ã™ã€‚
- $_COOKIE
HTTP Cookieã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—トã«å…¥åŠ›ã•れãŸå¤‰æ•°ã€‚以å‰ã®
(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€æŽ¨å¥¨ã•れã¾ã›ã‚“)
$HTTP_COOKIE_VARSé…列ã«é¡žä¼¼ã®ã‚‚ã®ã§ã™ã€‚
- $_FILES
HTTP POSTファイルアップãƒãƒ¼ãƒ‰ã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—ãƒˆã«æ¸¡ã•れる変数。
以å‰ã®$HTTP_POST_FILESé…列(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€
推奨ã•れã¾ã›ã‚“)ã¨é¡žä¼¼ã—ã¦ã„ã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€
POSTメソッド
ã®ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã‚’å‚ç…§ã—ã¦ä¸‹ã•ã„。
- $_ENV
環境ã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—ãƒˆã«æŒ‡å®šã•れる変数。
以å‰ã®$HTTP_ENV_VARSé…列(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€
推奨ã•れã¾ã›ã‚“)ã¨é¡žä¼¼ã—ã¦ã„ã¾ã™ã€‚
- $_REQUEST
ユーザ入力機構ã«ã‚ˆã‚Šã‚¹ã‚¯ãƒªãƒ—トã«å…¥åŠ›ã•れる全ã¦ã®å¤‰æ•°ã§ã€
ã“ã®ãŸã‚ã€ä¿¡é ¼ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ã“ã®é…列ã«å«ã¾ã‚Œã‚‹
変数ã®å˜åœ¨ã¨é †ç•ªã¯ã€è¨å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–
variables_order
ã«åŸºã¥ã定義ã•れã¾ã™ã€‚ã“ã®é…列ã¯ã€4.1.0よりå‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®PHP
ã«ã¯ç›´æŽ¥é¡žä¼¼ã™ã‚‹ã‚‚ã®ã¯ã‚りã¾ã›ã‚“。
import_request_variables()ã‚‚å‚ç…§ã—ã¦ãã ã•ã„。
注æ„
コマンドライン
ã§å®Ÿè¡Œã—ã¦ã„ã‚‹å ´åˆã€ã“ã®å¤‰æ•°ã«ã¯ã€
argv ãŠã‚ˆã³ argc エントリ
ã¯å«ã¾ã‚Œã¾ã›ã‚“。ã“れらã¯ã€$_SERVERé…列ã«ã¯
å˜åœ¨ã—ã¾ã™ã€‚
- $_SESSION
スクリプトã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ç¾åœ¨ç™»éŒ²ã•れã¦ã„る変数。
以å‰ã®$HTTP_SESSION_VARSé…列(ã¾ã 利用å¯èƒ½ã§ã™ãŒã€
推奨ã•れã¾ã›ã‚“)ã¨é¡žä¼¼ã—ã¦ã„ã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€
セッション処ç†é–¢æ•° ã‚’å‚ç…§ãã ã•ã„。