1. $GLOBALS : 전역변수
어디서도 사용가능한 연관배열
연관배열 : 특정한 키과 값을 지정 (Key, Value)
$week = array(
'Sun' => '일',
'Mon' => '월',
'Tue' => '화'
);
2. $_SERVER : 서버변수
3. $_GET : HTTP GET 변수
- PHP 4.1.0부터 제공된 슈퍼 글로벌 배열
- 주소에 데이터를 추가해서 전달하는 방식
- Browser에 의해 캐시되어 저장된다.
- queryString의 형식으로 포함되어 전달되므로, 길이의 제한이 있다.
- 보안상 취약점이 존재함
4. $_POST : HTTP POST 변수
- PHP 4.1.0부터 제공된 슈퍼 글로벌 배열
- Data를 별도로 첨부하여 전달하는 방식
- Browser에 의해 캐시되지 않으므로, Browser의 history에도 남지 않는다.
- GET에 비하여 데이터 길이에 대한 제한도 없고, 보안성도 높다.
5. $_FILES : HTTP 파일 업로드 변수
6. $_COOKIE : HTTP 쿠키
- 웹 사이트 접속시 서버에 의해 사용자 컴퓨터에 저장되는 정보
- 웹사이트는 이런식으로 저장된 사용자 정보를 클라이언트의 컴퓨터에 남겨서 필요할 때마다 재사용한다.
- COOKIE의 어원 : 사용자의 컴퓨터에 과자 부스러기가 남아있는 것과 같다해서 'cookie'라는 명칭이 붙음
- 로그인정보, 장바구니정보를 저장하는 용도로 사용되고 있으나, 사생활 침해 및 보안관련이슈가 있긴함
setcookie()
$name을 제외한 타 매개변수는 옵션이다.
setcookie ( 문자열 $name , 문자열 $value= "" , 배열 $options= [] ): bool
쿠키 생성하기 : setcookie()
<?php
$name = '쿠키이름';
$value = 'value';
setcookie($name, $value, time()+3600);
?>
- time()+3600을 통해 1시간동안 유효한 쿠키를 생성할 수 있다.
쿠키 삭제하기
<?php
setcookie($name, $value, time()-3600, "/");
?>
OR
<?php
unset($_COOKIE["city"]);
?>
html태그와 head를 포함한 Script 출력 전에 전송되어야 한다.
명시되어진 지속시간이 지나면 무효가 되며, 지속시간을 전달하지 않으면 browser가 닫힐때까지 유효하다.
사용자가 직접 삭제하지 않는 한 브라우저에 계속 남아있음
7. $_SESSION : Session 변수
- 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법
- 사용자가 Browser를 닫아서 서버와의 연결을 끝내는 시점까지
- cookie와의 차이점은 서버 쪽에 데이터를 저장하고, 세션의 키값만 client에게 남겨둔다.
- 브라우저는 필요할 때마다 세션의 키값만 사용해서 서버에 저장된 데이터를 사용한다.
쿠키과 마찬가지로 어떤 헤더보다도 먼저 생성해야한다.
세션 변수의 등록
$_SESSION 배열에 등록해야함
$_SESSION['agg'] = '달걀';
$_SESSION['chicken'] = '닭';
print_r($_SESSION);
출력 : Array ( [agg] => 달걀 [chicken] => 닭 )
세션 변수 등록해지
session_destroy
: 세션에 등록된 모든 데이터 삭제
session_unset
: 모든 세션 변수를 해제
8. $_REQUEST : HTTP REQUEST 변수
9. $_ENV : 환경변수