有限会社ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ

管理運営:有限会社ミスティーネット

| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

ミスティーネットPerl・CGI講座/WEB講座一覧
ミスティーネット
HTML講座 HTML講座
スタイルシート講座 スタイルシート講座
JavaScript講座 JavaScript講座
UNIXコマンド講座 UNIXコマンド講座

ミスティーネット
ラブラブメールでツーショット

人気サイトランキング

人気サイトランキング

8daysランキング

  HOME >> 環境変数について
  1. 環境変数とは?
  2. 環境変数の使用例
  3. 主な環境変数一覧
■ 環境変数とは?
環境変数を利用することでサーバーの情報や、ホームページ閲覧者のアクセス情報、ブラウザ情報などを取得することが出来ます。 環境変数は、$ENV{・・・} のハッシュデータとなって格納されています。
(環境変数のキーや値はサーバーの設定によって異なります。)
アクセスログなどを取る場合にはこの値を参照してログをとることが出来ます。
主な環境変数については下記でご紹介しているので御参照ください。
主な環境変数一覧



現在ご利用サーバーで、どのような環境変数が参照できるのかを確認することが出来ます。
print "Content-Type: text/html\n\n";
print <<END_HTML;
<html>
<head><title>環境変数テスト表示</title></head>
<body>
$ {
foreach $key (keys %ENV) {
print "$key : $ENV{$key}<br>\n";
}
}
</body>
</html>
* ここではサーバーから取得できた環境変数の一覧を表示しています。




■ 環境変数の使用例
環境変数を使用した簡単なプログラムをご紹介いたします。


アクセス時刻と、アクセスしてきたホスト名を記録するシンプルなアクセスログです。
(access_log.txt ファイルに記録されます。)
# ホスト名を取得
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};

# ホスト名が取得できない場合、IPからホスト名を取得する
if ($host eq "" || $host eq $addr) {
     $host = gethostbyaddr(pack("C4",split(/\./,$addr)),2) || $addr;
}

# 時間の取得
$ENV{'TZ'} = "JST-9";
$times = time;
($sec,$min,$hour,$mday,$mon,$year,$wday,$dmy,$dmy) = localtime($times);

# 日時のフォーマット
$time = sprintf("%04d\/%02d\/%02d %02d\:%02d\",
$year+1900,$mon+1,$mday,$hour,$min);

# ログファイルに記録する
open(DATA, "access_log.txt");
flock(DATA, 2);
print DATA "$time\t$host";
close(DATA);




アクセス端末が i-mode 端末の場合は、i-mode 用のページへアクセスするようにする。
それ以外は通常のWEBページへアクセスさせる。
# ブラウザ(アクセス端末)情報を取得
$browser = $ENV{'HTTP_USER_AGENT'};

# ページの振り分け
if ( index($browser, 'DOCOMO') >= 0 ) {
     print "Location: http://sample.com/i/\n\n";
} else {
     print "Location: http://sample.com/\n\n";
}
exit;
* i-mode からのアクセスの場合、ブラウザ情報は 「DoCoMo/1.0/P504i/c10/TB」 のような形で取得されます。 ブラウザ情報に 「DOCOMO」 の文字を含んでいるかどうかで i-mode からのアクセスかどうかを判断して、ページの振り分けを行なっています。




■ 主な環境変数一覧
環境変数 取得できる値の説明
AUTH_TYPE    認証タイプ
CONTENT_LENGTH    ブラウザから送信されたデータの長さ
CONTENT_TYPE    ブラウザから送信されたデータの種類
DOCUMENT_ROOT    ドキュメントルートフォルダ。サーバー上の絶対パス。
GATEWAY_INTERFACE    CGIのバージョン
HTTP_ACCEPT    ブラウザが受信可能なMIMEタイプ
HTTP_ACCEPT_ENCODING    ブラウザが受信可能なエンコードタイプ
HTTP_ACCEPT_LANGUAGE    ブラウザが受信可能な言語タイプ
HTTP_CACHE_CONTROL    キャッシュ制御に関する情報
HTTP_CONNECTION    HTTPの接続に関する情報
HTTP_FORWARDED    この要求をフォワードしたプロキシサーバーの情報
HTTP_HOST    サーバーのホスト名
HTTP_PRAGME    実装依存の値
HTTP_REFERER    アクセスもとのページURL
HTTP_USER_AGENT    ブラウザ情報
HTTP_X_FORWARDED_FOR    この要求をフォワードしたプロキシサーバーのIPアドレス
PATH    コマンドを実行する際のサーチパスの一覧
PATH_INFO    CGIのURLの末尾に付加されたパス情報。
PATH_TRANSLATED    PATH_INFOに指定されたファイルのサーバー上の実パス名
QUERY_STRING    GETメソッドで渡されたフォームパラメータ。URLの?以降に付加されたデータ
REMOTE_ADDR    ブラウザ側のアドレス
REMOTE_PORT    ブラウザ側のポート番号
REMOTE_IDENT    ブラウザ側のユーザID
REMOTE_USER    ブラウザ側のユーザ名。BASIC認証などが行なわれる際に有効。
REMOTE_METHOD    取得モード。GETやPOSTなど。
REQUEST_URI    要求されたURL(URI)
SCRIPT_FILENAME    スクリプトの実パス上のファイル名。
SCRIPT_NAME    スクリプト名。
SERVER_ADDR    サーバーのアドレス。
SERVER_ADMIN    サーバー管理者情報。
SERVER_NAME    サーバー名。
SERVER_PORT    サーバー側のポート番号。
SERVER_PROTOCOL    プロトコルバージョン。
SERVER_SOGMATIRE    サーバーのシグネチャ。
SERVER_SOFTWARE    サーバーのソフトウェア。





← 前のページへ戻る TOP ページへ戻る →


| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 有限会社ミスティーネット Inc. All Right Reserved.