[PHP] 쿠키의 정의와 쿠키 생성하기 setcookie()

2022. 9. 27. 01:01Program/PHP

094_PHP 쿠키와 쿠키 생성하기 setcookie()

[요약]

  • 쿠키의 정의와 쿠키를 생성하는 방법에 대해 알아보자

쿠키는 사용자가 데이터를 사용 중인 웹브라우저에 저장할 때 사용한다.쿠키를 사용해야 하는 경우는 어떠한 사용자를 특정할 수는 없지만 해당 사용자가 서비스에 재접속했을 때 맞춤 서비스를 제공하기 위하여 사용한다.

 

이를테면, 교보문고 사이트의 검색어 저장기능을 예로 들 수 있다.교보문고 사이트에 로그인을 하지 않고 검색을 한 후 다음에 재접속하면 전에 검색한 기록을 볼 수 있는 기능 같은 것들을 이야기한다.이 검색어들은 웹브라우저에 저장되어 있으며 저장된 데이터를 불러온 것이다. 로그인을 하지 않았기 때문에 사용자를 특정할 수 없지만 사용자의 컴퓨터에 직접 데이터를 저장함으로써 이러한 기능을 제공할 수 있는 것이다.또한 어떤 사이트에 로그인을 하게 되면 사용자 컴퓨터에 쿠키를 저장하여 그 쿠키를 갖고 있는지를 확인하여 회원인지 아닌지를 판단하기도 한다. 이러한 구조로 만들어진 사이트는 접속 시에 쿠키를 차단했다면 허용해달라는 문구를 띄우기도한다.쿠키는 용량 제한이 있으며 총 용량은 4kb이다.


[cookie 생성 방법]

setcookie("쿠키명", "쿠키 값", "폐기 시간", "경로");

쿠키는 setcookie() 함수의 첫 번째 아규먼트에는 쿠키의 이름을 지정한다.두 번째 아규먼트에는 쿠키에 대입할 값을 입력한다.세 번째 아규먼트에는 쿠키의 유지 시간을 입력한다.네 번째 아규먼트에는 쿠키의 적용 범위(경로)를 입력한다.다섯 번째 아규먼트에는 적용할 도메인을 입력한다.자신의 도메인이 www.playdaddy.com이라면 playdaddy.com을 입력하여 그 도메인에서 실행될 때만 작동하게 된다.여섯 번째 아규먼트에는 프로토콜이 http에서 작동하지 또는 https에서 작동할지를 지정할 때 사용한다.

세번째 아규먼트인 폐기 시간은 타임스탬프 값 단위를 사용한다.

생성 시간으로부터 하루를 유지한다면 현재 시간에 하루를 더하여 설정한다.

 

[쿠키 폐기 시간을 현재로부터 하루로 설정하는 방법]

setcookie('myCookie', 'hello', time()+86400);

86400은 하루를 초로 계산한 값이다.

1분은 60초이며 한시간은 60초 * 60, 하루는 24시간이므로 60 * 60 * 24로 계산한 값이다.

 

다음은 쿠키를 생성하는 예제이다.

[예제: 97_setcookie.php ]

<?php
	setcookie('memberID', 'playdaddy', time() + 3600, '/');
?>

쿠키명을 memberID로 하고 값으로 playdaddy를 대입한다.

유지 시간은 현재 시간으로부터 3600초(1시간) 까지이며, 범위는 최상단 경로부터이다.

쿠키를 생성하면 해당하는 범위에 있는 파일들에서 쿠키를 사용할 수 있다.

실행결과

위의 코드는 어떠한 결과도 출력하는 코드가 없으므로 결과를 확인해도 쿠키가 생성되었는지 알 수 없다.

이런 경우에는 크롬 인스펙터를 사용하여 쿠키의 생성 여부를 확인할 수 있다.

크롬 인스펙터로 쿠키를 보려면 브라우저에서 F12를 눌러 인스펙터를 켠 후 메뉴에서 애플리케이션(Application)을 선택한 후 왼쪽 메뉴에 있는 Cookies를 클릭한다.

 

 


 

 

 

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