Search
  1. スーパーグローバル変数(定義済みの変数)
  2. $GLOBALS〔グローバル変数〕
  3. $_SERVER〔サーバー変数〕
  4. $_GET〔HTTP GET変数〕
  5. $_POST〔HTTP POST変数〕
  6. $_COOKIE〔COOKIE変数〕
  7. $_ENV〔環境変数〕
  8. $_FILES〔HTTP ファイルアップロード変数〕
  9. $_REQUEST〔リクエスト変数〕
  10. $_SESSION〔セッション変数〕

スーパーグローバル変数(定義済みの変数)

unknown

PHP4.1.0以降フォームから送信された値を取得するには、スーパーグローバル変数を使用します。 それより前のバージョンでは、httpd.confregister_globals = Onにするか、$HTTP_*_VARS(定義済みのPHP配列)を使用して取得します。

PHP4.1.0以降は、$HTTP_*_VARSとスーパーグローバル変数の両方とも使用できますが、これらは変数としては別物です。 例えば、スクリプト中で、$HTTP_POST_VARS$_POSTを混在させて使用するのは好ましくありません。 どちらか一方に統一して使用するようにしましょう。

$GLOBALS
グローバル変数

unknown

$GLOBALS

グローバルスコープで定義されている全ての変数を格納した連想配列。
変数の名前は配列のキーになっています。

サンプルを見る
<?
#$GLOBALS
$a=100$b=1;
function Calc(){
    $GLOBALS["b"]=$GLOBALS["a"]+$GLOBALS["b"];
}
Calc();
echo $b."<br>"//101

#global
$c=100$d=1;
function Calc2(){
    global $c,$d;
    $d=$c+$d;
}
Calc2();
echo $d."<br>"//101
?>

$_SERVER
サーバー変数

unknown

$_SERVER ※PHP4.1~
$HTTP_SERVER_VARS

ヘッダ、パス、スクリプトの位置などの情報を有する配列。

サーバー変数
$_SERVERの要素説明
$_SERVER['PHP_SELF'];/test/index.php
ドキュメントルートから見た、現在実行中のファイル名。$PHP_SELFと同じ。
$_SERVER['GATEWAY_INTERFACE'];CGI/1.1
CGIのバージョン。
$_SERVER['SERVER_NAME'];localhost
サーバ名取得
$_SERVER['SERVER_SOFTWARE'];Apache/2.0.54(Win32)PHP/4.4.0
サーバの認識文字列
$_SERVER['SERVER_PROTOCOL'];HTTP/1.1
ページがリクエストされた際のプロトコル名とバージョン
$_SERVER['REQUEST_METHOD'];'GET','HEAD','POST','PUT'など
ページにアクセスする際に使用されたリクエストのメソッド名
$_SERVER['QUERY_STRING'];URLの「?」以降の文字列を取得
$_SERVER['DOCUMENT_ROOT'];C:/Program Files/Apache Group/Apache2/htdocs
URLの「?」以降の文字列を取得
$_SERVER['HTTP_ACCEPT'];現在のリクエストのAccept:ヘッダ
$_SERVER['HTTP_ACCEPT_CHARSET'];Shift_JIS,utf-8;q=0.7,*;q=0.7
現在のリクエストのAccept-Charset:ヘッダ
$_SERVER['HTTP_ACCEPT_ENCODING'];gzip,deflate
現在のリクエストのAccept-Encoding:ヘッダ
$_SERVER['HTTP_ACCEPT_LANGUAGE'];ja,en-us;q=0.7,en;q=0.3
現在のリクエストのAccept-Language:ヘッダ
$_SERVER['HTTP_CONNECTION'];keep-alive
現在のリクエストのConnection:ヘッダ
$_SERVER['HTTP_HOST'];localhost
現在のリクエストにHost:ヘッダ
$_SERVER['HTTP_REFERER''];現在のページに遷移する前にユーザーが閲覧していたページのURL
$_SERVER['HTTP_USER_AGENT'];Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2
現在のリクエストのUser-Agent:ヘッダ
$_SERVER['HTTPS'];スクリプトがHTTPSプロトコルを通じて実行されている場合に空でない値が返される
$_SERVER['REMOTE_ADDR'];ユーザーのIPアドレス
$_SERVER['REMOTE_HOST'];ユーザーがアクセスしているホスト名。
$_SERVER['REMOTE_PORT'];ユーザのパソコンからウェブサーバへの通信に使用されているポート番号。
$_SERVER['SCRIPT_FILENAME'];C:/Program Files/Apache Group/Apache2/htdocs/test/test.php
現在実行中のスクリプトファイルの絶対パス
$_SERVER['SERVER_ADMIN'];ウェブサーバの設定ファイルのSERVER_ADMIN(Apacheの場合)ディレクティブにセットされている値。
$_SERVER['SERVER_PORT'];80
ウェブサーバーの通信ポートとして使用されているポート番号。デフォルトは'80'。SSL通信の場合は、セキュアHTTPポートとして指定されている値になる。
$_SERVER['SERVER_SIGNATURE'];Apache/2.0.54 (Win32) PHP/4.4.0 Server at localhost Port 80
サーバーで生成されたページに追加される、サーバーのバージョン名とバーチャルホスト名の文字列。
$_SERVER['PATH_TRANSLATED'];C:/Program Files/Apache Group/Apache2/htdocs/test/test.php
バーチャルからリアルへのマッピングがなされた後の、現在のスクリプトファイルシステム上のパス(ドキュメントルートではない)。
$_SERVER['SCRIPT_NAME'];/test/test.php
現在のスクリプトファイルのパス。スクリプトファイル自身のページを指定するのに使える。
$_SERVER['REQUEST_URI'];/test/test.php
ページにアクセスするために指定されたURI。
$_SERVER['PHP_AUTH_DIGEST'];PHPをApacheのモジュールとして実行し、HTTPダイジェスト認証を行っている場合、クライアントから送られた'Authorization'ヘッダの内容(適切な認証処理を行うために利用する)。
$_SERVER['PHP_AUTH_USER'];HTTP認証時のユーザー名(PHPをApacheまたはIIS(PHP5でのISAPI)のモジュールとして実行している場合)
$_SERVER['AUTH_AUTH_PW'];HTTP認証時のユーザーのパスワード(PHPをApacheまたはIIS(PHP5でのISAPI)のモジュールとして実行している場合)
$_SERVER['AUTH_TYPE'];HTTP認証時の認証形式(PHPをApacheのモジュールとして実行している場合)
<?
/* 例:現在のURLを取得 */
$thisURL='http://'.htmlspecialchars($HTTP_SERVER_VARS['HTTP_HOST'],ENT_QUOTES).htmlspecialchars($HTTP_SERVER_VARS['REQUEST_URI'],ENT_QUOTES);
echo "現在のURL:".$thisURL;
?>
現在のURL:http://phpjavascriptroom.com/?t=php&p=global

Basic HTTP 認証

認証されていない場合は、ブラウザ上に、ユーザー名とパスワードを入力するウインドウがポップアップで表示されます。 ユーザーがユーザー名とパスワードを入力すると、 定義済みの変数PHP_AUTH_USERPHP_AUTH_PWPHP_AUTH_TYPEにそれぞれユーザー名、パスワード、認証タイプが格納されます。

入力された値は、$_SERVER['PHP_AUTH_USER']として取得できます(PHP4.2.0以前は、$HTTP_SERVER_VARS['PHP_AUTH_USER']を使用)。

Basic HTTP 認証は、PHPをApacheのモジュールとして動かしている場合のみ使用できます(CGI版×)。

<?
$realm="Restricted area";
$users=Array("admin"=>"mypass","guest"=>"guest");

if(!isset($HTTP_SERVER_VARS['PHP_AUTH_USER'])){
    //PHP_AUTH_USERが空ならダイアログを表示するヘッダーを送信
    header("WWW-Authenticate: Basic realm=\"".$realm."\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "<p>ユーザーの認証が必要です。</p>";
    die("ユーザーがキャンセルボタンを押した時に送信されるテキスト\n");
}elseif(isset($HTTP_SERVER_VARS['PHP_AUTH_USER'])){
    $flag=false;
    foreach($users as $id=>$pw){
        if($id==$HTTP_SERVER_VARS['PHP_AUTH_USER']){
            if($pw==$HTTP_SERVER_VARS['PHP_AUTH_PW']){
                $flag=true;
            }
        }
    }
    if($flag){
        //有効なログインIDとパスワードが入力された場合
        echo "<p>ユーザー名:".$HTTP_SERVER_VARS['PHP_AUTH_USER']."</p>";
        echo "<p>パスワード:".$HTTP_SERVER_VARS['PHP_AUTH_PW']."</p>";
    }else{
        //無効なログインIDまたはパスワードが入力された場合
        //再度、ダイアログを表示するヘッダーを送信
        echo "<p>有効なログインIDとパスワードを入力して下さい。</p>\n";
        header("WWW-Authenticate: Basic realm=\"".$realm."\"");
        header("HTTP/1.0 401 Unauthorized");
        die("ユーザーがキャンセルボタンを押した時に送信されるテキスト\n");
    }
}
?>

$_GET
HTTP GET変数

unknown

$_GET ※PHP4.1~
$HTTP_GET_VARS

HTTP GETメソッドを通して渡された情報が格納された連想配列。

フォームをGETで送信すると、http://mydomain.com/test.php?name=PJ&age=20のように、送信先URLの末尾にフォームに入力したデータが引数として表示されます。

$_GET(PHP4.1.0未満は$HTTP_GET_VARS)には、送信されたデータの名前と値が格納されています。 $_GET['name'](PHP4.1.0未満は$HTTP_GET_VARS['age'])として個々に値を取得できます。

<!--
【送信先のtest.phpの中身】
<?
function escapeDate($sendData){
    $escapeArr $sendData;
    foreach($escapeArr as $key => $val){
        if(!(is_array($val))){
            $val htmlspecialchars($valENT_QUOTES'UTF-8');
            if (get_magic_quotes_gpc()) {
                $val stripslashes($val);
            }
            $escapeArr[$key] = $val;
        }
    }
    return $escapeArr;
}
echo "<p style='color:green'>========== 送信された値 ==========</p>";
echo "<pre>";
if(isset($_POST) && !empty($_POST)){
    print_r(escapeDate($_POST));
}else if(isset($_GET) && !empty($_GET)){
    print_r(escapeDate($_GET));
}else if(isset($_REQUEST)){
    print_r(escapeDate($_REQUEST));
}
echo "</pre>";
?>
-->
<form action="/content/demo/test.php" method="get">
名前:<input type="text" name="name" size="10" maxlength="256" />
年齢:<input type="text" name="age" size="2" maxlength="2" /> 
<input type="submit" value="GET送信" />
</form>
名前: 年齢: 

$_POST
HTTP POST変数

unknown

$_POST ※PHP4.1~
$HTTP_POST_VARS

HTTP POSTメソッドを通して渡された情報が格納された連想配列。

フォームをPOSTで送信すると、GETと異なり、送信先URLの末尾に引数は表示されません。

$_POST(PHP4.1.0未満は$HTTP_POST_VARS)には、送信されたデータの名前と値が格納されています。 $_POST['name'](PHP4.1.0未満は$HTTP_POST_VARS['name'])として個々に値を取得できます。

<!--
【送信先のtest.phpの中身】
<?
function escapeDate($sendData){
    $escapeArr $sendData;
    foreach($escapeArr as $key => $val){
        if(!(is_array($val))){
            $val htmlspecialchars($valENT_QUOTES'UTF-8');
            if (get_magic_quotes_gpc()) {
                $val stripslashes($val);
            }
            $escapeArr[$key] = $val;
        }
    }
    return $escapeArr;
}
echo "<p style='color:green'>========== 送信された値 ==========</p>";
echo "<pre>";
if(isset($_POST) && !empty($_POST)){
    print_r(escapeDate($_POST));
}else if(isset($_GET) && !empty($_GET)){
    print_r(escapeDate($_GET));
}else if(isset($_REQUEST)){
    print_r(escapeDate($_REQUEST));
}
echo "</pre>";
?>
-->
<form action="/content/demo/test.php" method="post">
名前:<input type="text" name="name" size="10" maxlength="256" />
年齢:<input type="text" name="age" size="2" maxlength="2" /> 
<input type="submit" value="POST送信" />
</form>
名前: 年齢: 

$_ENV
環境変数

unknown

$_ENV ※PHP4.1~
$HTTP_ENV_VARS

ALLUSERSPROFILECLASSPATHCommonProguramFilesCOMPUTERNAMEOSPathPATHEXTPROCESSOR_ARCHITECTUREProgramFilesSystemDriveSystemRootTEMPTMPUSERPROFILEwindir等、 PHPの環境に関する情報が格納されています。

PHPが実行されている環境に依存するため、確定的に定義されている環境変数を取得することは不可能です。

$_FILES
HTTP ファイルアップロード変数

unknown

$_FILES ※PHP4.1~
$HTTP_POST_FILES

HTTP POSTメソッドを通じてアップロードされたファイル情報が格納された連想配列。

$HTTP_POST_FILES$_FILESは同じ情報を持っていますが、変数としては別物です。 $HTTP_POST_FILESは自動的にはグローバル扱いされません。

そのため$HTTP_POST_FILESに関数やメソッドの中からアクセスする場合は、
global $HTTP_POST_FILESとして参照する必要があります。

HTTP ファイルアップロード変数:$_FILE変数
$_FILE変数説明
$_FILES['UploadFile']['name']クライアントマシンの元のファイル名
$_FILES['UploadFile']['type']ファイルのMIMEタイプ
$_FILES['UploadFile']['tmp_name']サーバー上で保存されているテンポラリファイル名
$_FILES['UploadFile']['error']このファイルアップロードに関する エラーコード
$_FILES['UploadFile']['size']アップロードされたファイルのバイト単位のサイズ

⇒ この変数を使用したファイル関連の解説は、ファイルシステム関数にあります。

$_REQUEST
リクエスト変数

unknown

$_REQUEST ※PHP4.1~

$_GET$_POST$_COOKIE$_FILESの内容を格納した連想配列。

PHP4.1.0未満のバージョンではサポートされていません

$_SESSION
セッション変数

unknown

$_SESSION ※PHP4.1~
$HTTP_SESSION_VARS

セッション情報が格納された配列。

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women