php cookie session 쿠키 세션

쿠키(Cookie)

  • 쿠키는 개별 사용자의 컴퓨터(local)에 변수를 저장
  • 개별 사용자에게 다른 서비스를 제공하기 위함

쿠키의 생성

<?php
setcookie("counter", "1", 30*24*60*60+time(), "/");
//쿠키의 이름은 counter, 쿠키의 값은 1, 쿠키는 현재시간부터 30일동안 보관됨, 
//루트(/) 이하 모든 디렉토리에서 읽기 가능
?>

쿠키의 이용

<?php
//echo $_COOKIE["counter"];
if(!is_null($_COOKIE)){
	//NOT 빈값 이다 (쿠키가)
	if(!is_null($_COOKIE["counter"])){
		//NOT 빈값 이다 (쿠키 counet)
		echo "counter 쿠키값은".$_COOKIE["counter"]."입니다.";
		//$_COOKIE["counter"] ++;
		setcookie("counter", $_COOKIE["counter"]+1, 30*24*60*60+time(), "/");
	}else{
		echo "counter 쿠키가 없습니다.";
	}
}else{
	echo "쿠키가 없습니다.";
}	
?>

쿠키의 폐기

<?php
setcookie("counter", "", time(), "/");
?>

세션(Session)

  • 쿠키와 마찬가지로 개별 사용자를 구별하기 위한 용도로 사용
  • 쿠키와 달리 페이지를 닫을때 세션이 자동으로 닫힘
<?php
$cnt;
session_start(); //세션을 시작하는 함수
if($_SESSION){
	if(!is_null($_SESSION["cnt"])){
		$cnt = $_SESSION["cnt"] + 1; 
		//세션변수 "cnt"이 있다면 본래의 숫자에 1을 더함
		$_SESSION["cnt"] = $cnt;
		//세션에 변수 "cnt"를 저장함
	}else{
		$_SESSION["cnt"] = 0;
	}
}else{
	$_SESSION["cnt"] = 0;
}

echo "귀하는 이 페이지를 ".$_SESSION["cnt"]."번째 새로고침 하였습니다."
?>

세션의 폐기

<?php 
unset($_SESSION['id']); //특정 변수의 폐기
session_destroy(); //세션변수 전체의 폐기
?>

세션의 특이 사항

<?php
session_start(); // 세션변수 사용하기 시작
session_register('passtype'); // 세션변수 등록
$_SESSION['passtype']; //세션변수 접근
$_SESSION['passtype']=10; //세션변수 입력
echo $_SESSION['passtype']; //세션변수 출력
?>
    if(!isset($_SESSION)) 
    { 
        session_start(); // 세션변수 사용하기 시작
    }
	// 세션시작 중복 방지
  • 세션변수란 동일 브라우저내에서 계속 이어쓰는 변수이다.
  • 세션변수 사용선언 > 세션변수등록 > 세션변수접근,사용 으로 이어진다.

  • 세션변수는 http://로 시작하는 링크의 경우 같은 도메인이더라도 세션이 초기화된다.(상대주소나 /로 시작하는 절대주소를 사용하는것을 권장)
  • 같은 도메인의 타 브라우져 사이에서는 세션이 유효하지 않다 (쿠키로 해결하는 것으로 생각됨)