2012年4月22日日曜日

スーパーグローバル変数|変数・定数|PHP|PHP & JavaScript Room


TOP  »  PHP  »  スーパーグローバル変数

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

データなし

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

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

$GLOBALS
グローバル変数

データなし

$GLOBALS

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

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

$_SERVER
サーバー変数

データなし

$_SERVER ※PHP4.1~
$HTTP_SERVER_VARS

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


私はInDesignで雑誌をどのように作るのですか
《サーバー変数》
$_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:

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版×)。


フリーダウンロードに入力する方法を学ぶ
="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 "

ユーザーの認証が必要です。

"
;     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 "

ユーザー名:".$HTTP_SERVER_VARS['PHP_AUTH_USER']."

"
;         echo "

パスワード:".$HTTP_SERVER_VARS['PHP_AUTH_PW']."

"
;     }else{         //無効なログインIDまたはパスワードが入力された場合         //再度、ダイアログを表示するヘッダーを送信         echo "

有効なログインIDとパスワードを入力して下さい。

\n"
;         header("WWW-Authenticate: Basic realm=\"".$realm."\"");         header("HTTP/1.0 401 Unauthorized");         die("ユーザーがキャンセルボタンを押した時に送信されるテキスト\n");     } } ?>

$_GET
HTTP GET変数

データなし

$_GET ※PHP4.1~
$HTTP_GET_VARS

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

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

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


  名前: 年齢:    

$_POST
HTTP POST変数

データなし

$_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'])として個々に値を取得できます。

  名前: 年齢:    

データなし

$_COOKIE ※PHP4.1~
$HTTP_COOKIE_VARS

HTTPクッキーの情報が格納された連想配列。

$_ENV
環境変数

データなし

$_ENV ※PHP4.1~
$HTTP_ENV_VARS

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

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

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

データなし

$_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
リクエスト変数

データなし

$_REQUEST ※PHP4.1~

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

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

$_SESSION
セッション変数

データなし

$_SESSION ※PHP4.1~
$HTTP_SESSION_VARS

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

「ヘテムル」は、国内最大級の個人向けホスティングサービス『ロリポップ!レンタルサーバー』を運営する株式会社paperboy&co.の提供する大容量・高機能のレンタルサーバー。

独自ドメイン50個、データベース10個までを、追加費用無料で設定できます。
しかも、サーバー容量は余裕の10GB

動画配信・音源配信・ポッドキャスティングなど、Flash、音楽、動画ファイル等をふんだんに使って、自由にWEBサイトを表現することが可能です。 また、マルチドメイン、マルチデータベース、共有SSLなどサイト運営に大変便利な機能や、FlashMediaServer、ColdFusionなど他にはないユニークな機能を搭載。 もちろん、MovableTypeやWordPress、Xoopsといった各種webアプリケーション、CGI、 Perl、PHP4、PHP5、Rubyなどの各種開発言語にも対応しています。

実際にファイルをアップしたりできる15日間のお試し期間があるので、借りてから「サイトを移植してみたらプログラムが動かなかったー(><)」なんてことにはなりません♪



These are our most popular posts:

外部テンプレートファイルにダイレクトに変数を埋め込む方法

PHPスクリプト無料配布所 :: PHP. ... PHP4で1970年1月1日以前のデータをtime関数 互換のinteger型で扱う方法 ... ?php /* 別のファイルで定義した文面に、変数を 埋め込んでメールを送信する */ テンプレートファイル(実際は非公開領域に置く事をお 勧めし ... read more

PHP設定の値を変更する方法 - 格安レンタルサーバーのサーバー博士

ウェブサイトとドメイン」=「PHP設定」で表示される画面で それぞれの設定を変更することができます。 ... PHP をセーフモードにした場合、 スクリプトが一部のファイルへのアクセスを試みると、このディレクトリ内のファイル についてはセキュリティ(UID/GID) ... メールの送信に使用する mail() 関数の追加 パラメータです。 read more

PHPリファレンス($ FILES、@move uploaded file - 忘れっぽい ...

検索フォームを送信 ... ファイルをアップロードするには、変数「$ FILE」と@ move uploaded file()関数を使用します。 ... たファイルは、テンポラリファイルとして$ FILE[ パラメータ名 ][ tmp name ]に、一時的に格納されますが、PHPスクリプト終了と 同時に削除 ... read more

ファイルのアップロードを制限する - @IT

2012年1月30日 ... Webブラウザなどの クライアントからデータを送信する方法には、GETメソッドと POSTメソッドの2つがありますが、 .... Webサーバの公開ディレクトリが、PHP実行可能 な状態ならば、PHPスクリプトファイルを送り込んでそれを実行させる ... read more

0 件のコメント:

コメントを投稿