[PHP] 슈퍼 글로벌 변수 $_SERVER

2022. 9. 17. 03:17Program/PHP

067_PHP 슈퍼 글로벌 변수 $_SERVER

[요약]

  • ip주소, 페이지 주소 등의 정보를 알려주는 슈퍼 글로벌 변수 $_SERVER 에 대해 알아보자

$_SERVER는 슈퍼 글로벌 변수 중 하나이다.

슈퍼 글로벌 변수는 PHP 자체적으로 내장된 변수이며 데이형은 배열이다.

인덱스값에 따라 여러 정보를 확인할 수 있다.


[$_SERVER 변수로 얼을 수 있는 정보]

인덱스 내용
PHP_SELF 현재 실행 중인 파일의 경로와 파일명 표시
argv 페이지에 전달된 데이터 표시
argc 페이지에 전달된 데이터의 라인별 수
GATEWAY_INTERFACE 서버가 사용 중인 CGI 버전
SERVER_ADDR 현재 사용 중인 서버의 IP 주소
SERVER_NAME 현재 사용 중인 서버의 호스트명
SERVER_SOFTWARE 리스폰스헤더에 쓰여있는 서버의 소프트웨어 환경
SERVER_PROTOCOL 페이지가 리퀘스트될 때의 프로토콜명과 버전
REQUEST_METHOD 페이지에 엑세스할 때 사용된 리퀘스트의 메소드명
REQUEST_TIME 리퀘스트가 개시된 때의 타임스탬프
REQUEST_TIME_FLOAT 리퀘스트가 개시된 때의 타임스탬프(마이크로 초 표시)
QUERY_STRING 검색인수 표시
DOCUMENT_ROOT 현재 실행 파일의 경로를 현재 사용 중인 시스템의 최상위 결로부터 표시
HTTP_CONNECTION 현재 리퀘스트의 CONNECTION 헤더 내용
HTTP_HOST 현재 리퀘스트의 HOST 헤더 내용
HTTP_REFERER 현재 페이지 이전의 페이지 주소
HTTP_USER_AGENT 페이지에 접속 중인 유저 에이전트의 표시 문자열
HTTPS HTTPS 프로토콜을 이용해 실행되는 경우의 정보를 표시
REMOTE_ADDR 현재 페이지를 보고 있는 유저의 아이피 주소
REMOTE_HOST 현재 패이지를 액세스하고 있는 호스트명
REMOTE_PORT 사용자의 기기에서 웹서버로 통신하는 포트
REMOTE_USER 인증된 사용자 여부
SCRIPT_FILENAME 현재 실행 중인 스크립트의 절대주소
SERVER_ADMIN 웹서버 설정 파일의 SERVER_ADMIN에 설정된 값
SERVER_PORT 웹서버의 통신포트(보통: 80)

페이지에 접속한 사용자의 IP주소(회선에 부여된 숫자로 구성된 주소)를 알고자 한다면 다음의 코드를 사용한다.

$_SERVER['REMOTE_ADDR'];

 

페이지의 주소를 확인하려면 다음의 코드를 사용한다.

$_SERVER['PHP_SELF'];

 

다음은 $_SERVER 변수의 일부 값을 출력하는 예제이다.

[예제: 69_superGlobal.php ]

<?php
    echo 'DOCUMENT_ROOT is ' . $_SERVER['DOCUMENT_ROOT'] . '<br>';
    echo 'HTTP_ACCEPT_LANGUAGE is ' . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . '<br>';
    echo 'HTTP_HOST is ' . $_SERVER['HTTP_HOST'] . '<br>';
    echo 'HTTP_USER_AGENT is ' . $_SERVER['HTTP_USER_AGENT'] . '<br>';
    echo 'SERVER_PORT is ' . $_SERVER['SERVER_PORT'] . '<br>';
    echo 'SCRIPT_NAME is ' . $_SERVER['SCRIPT_NAME'] . '<br>';
    echo 'REQUEST_URI is ' . $_SERVER['REQUEST_URI'] . '<br>';
    echo 'PHP_SELF is ' . $_SERVER['PHP_SELF'] . '<br>';
    echo 'QUERY_STRING is ' . $_SERVER['QUERY_STRING'] . '<br>';
?>

실행결과

결과의 마지막에 있는 QUERY_STRING의 값은 현재 GET방식의 변수 정보가 없기 때문에 표시되지 않았다.

아래와 같이 URL 값에 GET방식의 변수가 붙어있다면 아래와 같이 출력되는 것을 확인할 수 있다.

위의 결과값은 name이라는 변수명으로 playdaddy라는 값을 보내는 것을 의미한다.

 

 

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사