スーパーグローバル変数(定義済みの変数)
データなし
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. バーチャルからリアルへのマッピングがなされた後の、現在のスクリプトファイルシステム上のパス(ドキュメントルートではない)。 |
$_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_USER、PHP_AUTH_PW、PHP_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
COOKIE変数
データなし
$_COOKIE ※PHP4.1~
$HTTP_COOKIE_VARS
HTTPクッキーの情報が格納された連想配列。
$_ENV
環境変数
データなし
$_ENV ※PHP4.1~
$HTTP_ENV_VARS
ALLUSERSPROFILE、 CLASSPATH、 CommonProguramFiles、 COMPUTERNAME、 OS、 Path、 PATHEXT、 PROCESSOR_ARCHITECTURE、 ProgramFiles、 SystemDrive、 SystemRoot、 TEMP、 TMP、 USERPROFILE、 windir等、 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
として参照する必要があります。
$_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日間のお試し期間があるので、借りてから「サイトを移植してみたらプログラムが動かなかったー(><)」なんてことにはなりません♪
0 件のコメント:
コメントを投稿