동적 웹 페이지(3)

minah moon·2023년 8월 8일

PHP

목록 보기
16/58
post-thumbnail

다음은 동적 웹 페이지를 만드는 데 도움을 주는 PHP 인터프리터에 내장된 도구들이다.

슈퍼글로벌 배열

$_SERVER 슈퍼글로벌 배열은 페이지 요청이 있을 때마다 PHP 인터프리터가 생성하는 슈퍼글로벌 배열 중 하나다. 각 슈퍼글로벌 배열은 페이지의 PHP 코드가 사용할 수 있는 데이터를 갖는다.

  • $_SERVER[ 'REMOTE_ADDR' ] : 브라우저의 IP 주소
  • $_SERVER[ 'HTTP_USER_AGENT' ] : 페이지를 요청하는 데 사용된 브라우저의 타입
  • $_SERVER[ 'HTTP_REFERER' ] : 방문자가 링크를 통해 이 페이지에 온 경우라면, 브라우저는 이 페이지에 링크된 페이지의 URL을 보낼 수 있다. 모든 브라우저가 이 데이터를 보내는 것은 아니다.
  • $_SERVER[ 'REQUEST_METHOD' ] : HTTP 요청 타입: GET 또는 POST
  • $_SERVER[ 'HTTPS' ] : HTTPS를 사용하여 페이지에 접근한 경우에만 추가되며, 그 값은 true다.
  • $_SERVER[ 'HTTP_HOST' ] : 호스트 이름(도메인 이름, IP 주소 또는 localhost일 수 있음)
  • $_SERVER[ 'REQUEST_URI' ] : 이 페이지를 요청하는 데 사용된 호스트 이름 다음의 URI
  • $_SERVER[ 'QUERY_STRING' ] : 쿼리 문자열의 모든 데이터
  • $_SERVER[ 'SCRIPT_NAME' ] : 도큐먼트 루트 폴더에서 현재 실행중인 파일까지의 경로
  • $_SERVER[ 'SCRIPT_FILENAME' ] : 파일시스템 루트에서 현재 실행 중인 파일까지의 경로
  • $_SERVER[ 'DOCUMENT_ROOT' ] : 파일시스템 루트에서 실행 중인 파일의 도큐먼트 루트까지의 경로

내장 함수

var_dump() 함수는 PHP의 내장 함수 중 하나이다. 이것은 사이트를 개발할 때 변수가 가지고 있는 값과 데이터 타입을 확인하기 위해 사용된다.

var_dump() 함수는 하나의 매개변수로 변수명을 받는다. 이 함수는 값을 반환하지 않는다. 생성된 HTML 페이지의 변수에 저장된 값을 보여준다.

var_dump($variable);

변수가 문자열일 때
string(3) "Ivy"
변수가 배열을 가질 때
array(3) { [ "name" ]=> string(3) "Ivy" [ "age" ]=> int(24) [ "active" ]=> bool(true) }
변수가 객체를 가질 때
object(User)#1 (3) { [ "name" ]=> string(3) "Ivy" [ "age" ]=> int(24) [ "active" ]=> bool(true) }


오류 메시지

PHP 인터프리터는 실행 중인 코드에 문제가 생기면 오류 메시지를 생성한다. 메시지를 보는 방법은 두 가지가 있다.

  • 브라우저로 전송되는 HTML에 표시
  • 에러 로그error log라고 하는 텍스트 파일에 저장

각 오류 메시지는 문제를 찾아 해결할 수 있도록 네 가지 데이터를 포함한다.

  • 에러 레벨error level(오류의 심각한 정도)
  • 오류에 대한 설명
  • 오류가 포함된 파일
  • 오류가 발견된 코드 줄 번호
    ex) Error: description goes here in test.php on line 21

에러 레벨

  • PARSE : PHP 코드 구문의 오류는 PHP 인터프리터가 페이지를 전혀 실행하지 못하게 한다.
  • FATAL : 실행 중 오류가 발생한 이후의 코드 실행을 중지하는 PHP 코드 오류
  • WARNING : 문제의 원인이 될 수 있지만 페이지의 나머지 부분을 인터프리터가 실행하려고 시도한다.
  • NOTICE : 문제를 지적할 수 있지만 페이지의 나머지 부분을 인터프리터가 실행하려고 시도한다.
  • DEPRECATED : PHP의 향후 버전에서 제거될 수 있는 PHP 코드
  • STRICT : 더 좋은 방법으로 작성할 수 있으며 향후 미래에 대비할 수 있는 PHP 코드






출처 - 존 두켓, <백엔드 프로그래밍을 위한 PHP & MySQL>, Jpub, 2022

0개의 댓글