PHPの$_SERVERとは?サーバーやリクエスト情報を取得する便利な変数
$_SERVER は、PHPでサーバー環境やリクエストに関する情報を取得できるスーパグローバル変数です。
リクエストの種類やホスト名、ユーザーエージェント、スクリプトのパスなど、さまざまな情報が格納されています。
$_SERVERの基本
$_SERVERは連想配列で、キーごとに意味のある値が格納されています。
必要な情報を $_SERVER["キー名"]
の形式で取得します。
よく使われる$_SERVERのキー
$_SERVER["REQUEST_METHOD"]
:リクエストの種類(GET, POSTなど)
$_SERVER["HTTP_USER_AGENT"]
:ブラウザ情報
$_SERVER["REQUEST_URI"]
:リクエストされたURI
$_SERVER["SCRIPT_NAME"]
:実行中のスクリプトのパス
$_SERVER["SERVER_NAME"]
:ホスト名
$_SERVER["REMOTE_ADDR"]
:アクセス元のIPアドレス
$_SERVER["SERVER_PORT"]
:使用中のポート番号
$_SERVER["HTTP_REFERER"]
:直前のページのURL(空の場合あり)
使用例
// リクエストの種類を判定
if ($_SERVER["REQUEST_METHOD"] === "POST") {
echo "POSTで送信されました";
}
// ユーザーエージェントを表示
echo "あなたのブラウザ情報:" . $_SERVER["HTTP_USER_AGENT"];
// アクセス元のIPアドレスを取得
echo "あなたのIP:" . $_SERVER["REMOTE_ADDR"];
デバッグ用途にも便利
var_dump($_SERVER);
を使えば、すべてのキーと値を一気に確認できます。
echo "<pre>";
var_dump($_SERVER);
echo "</pre>";
セキュリティ上の注意
- ユーザー入力に近い値(
HTTP_USER_AGENT
や HTTP_REFERER
)は信頼しすぎない
- 画面にそのまま出力せず、
htmlspecialchars()
で無害化するのが安全
まとめ
$_SERVER
はサーバーやリクエストの情報を取得できる連想配列
- リクエストメソッド、IP、スクリプト名などが取得可能
- フォーム処理やアクセス制御、ログ記録などに使える
- 出力時はエスケープ処理を行い、信頼しすぎない
$_SERVER はPHPの中でも非常に実用的なスーパグローバル変数です。
Webアプリケーションの挙動を制御したり、ユーザーのアクセス状況を記録したりと、幅広く活用できます。まずはよく使うキーを覚えて、活用してみましょう。