スーパーグローバル変数(定義済みの変数)
データなし
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.1CGIのバージョン。 |
| $_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/htdocsURLの「?」以降の文字列を取得 |
| $_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 件のコメント:
コメントを投稿