PHP - 슈퍼글로벌(superglobal)

ouneno·2023년 10월 20일
0

PHP

목록 보기
5/8

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 : 환경변수

  • 시스템에 따라 다른 값이 할당된다
profile
지속적인 성장을 추구하는 새싹 개발자입니다🌱

0개의 댓글

관련 채용 정보