【PHP】サーバ情報($_SERVER)変数でできること
PHPの$_SERVER変数について詳しく解説
目次
$_SERVERとは?
$_SERVER
は、PHPにおけるスーパーグローバル変数の一つで、サーバーや実行環境に関する情報を格納する連想配列です。
リクエストに関連するヘッダー情報やスクリプトの実行環境の詳細が含まれています。
$_SERVERの主なキーと解説
以下に、よく使われる $_SERVER
のキーを一覧で紹介します。
$_SERVER['PHP_SELF']
: 現在実行中のスクリプトのファイル名$_SERVER['SERVER_NAME']
: サーバーのホスト名$_SERVER['HTTP_HOST']
: クライアントがアクセスしたホスト名$_SERVER['REQUEST_METHOD']
: クライアントからのリクエストメソッド (GET, POSTなど)$_SERVER['REQUEST_URI']
: クライアントがアクセスしたURI$_SERVER['QUERY_STRING']
: クエリ文字列 (URLの「?」以降の部分)$_SERVER['REMOTE_ADDR']
: クライアントのIPアドレス$_SERVER['HTTP_USER_AGENT']
: クライアントのブラウザ情報
$_SERVERの使用例
現在のスクリプトのファイル名を取得
echo $_SERVER['PHP_SELF'];
例えば、「/example/index.php」のURLでアクセスすると、「/example/index.php」が出力されます。
クライアントのIPアドレスを取得
echo $_SERVER['REMOTE_ADDR'];
これにより、訪問者のIPアドレスを取得できます。
リクエストメソッドの確認
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo "このリクエストはPOSTメソッドです";
} else {
echo "このリクエストはPOSTではありません";
}
フルURLを取得
$full_url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $full_url;
これにより、アクセスされたURLを完全な形で取得できます。
$_SERVERを使用する際の注意点
- 外部入力を信用しない:
$_SERVER['QUERY_STRING']
や$_SERVER['HTTP_USER_AGENT']
は、ユーザーが改ざん可能です。 - XSS対策:
$_SERVER['PHP_SELF']
をフォームのアクションに使用する際は、htmlspecialchars()
を使ってエスケープする。
まとめ
$_SERVER
変数を使うことで、PHPスクリプト内でリクエスト情報や環境情報を簡単に取得できます。
ただし、セキュリティリスクを理解した上で適切に使用することが重要です。