
PHP 강의
>PHP - 초급
📚 PHP 초급 - 8주차: 파일 입출력 및 쿠키/세션 - 02 쿠키(Cookie) 설정 및 읽기
![]() |
평점 | 10.0 | 라이센스 | free |
---|---|---|---|---|
사용자평점 | 10.0 | 운영체제 | ||
다운로드 | 1 | 파일크기 | 0 | |
제작사 | LUZENSOFT | 등록일 | 2025-07-05 11:44:55 | |
조회수 | 3 |
📚 PHP 초급 - 8주차: 파일 입출력 및 쿠키/세션 - 02 쿠키(Cookie) 설정 및 읽기
이번 주차에는 #PHP에서 #파일 입출력과 함께 #웹 개발의 중요한 개념인 #쿠키와 #세션에 대해 알아보겠습니다. 특히 이번 포스팅에서는 #쿠키의 #설정과 #읽기에 초점을 맞춰 설명합니다.
쿠키(Cookie)란?
#쿠키는 클라이언트(#브라우저) 측에 저장되는 작은 #데이터 조각입니다. 웹 서버가 #클라이언트의 #브라우저에 특정 정보를 저장하고, 이후 같은 서버에 접속할 때 해당 정보를 다시 읽어 사용자 경험을 개선하는 데 사용됩니다. 예를 들어, 로그인 상태 유지, 장바구니 정보, 사용자 설정 등을 저장할 수 있습니다.
쿠키 설정하기: setcookie()
함수
#PHP에서 #쿠키를 설정하려면 setcookie()
함수를 사용합니다. 이 함수는 #HTTP 헤더를 통해 #클라이언트에 #쿠키를 전송합니다. 따라서 setcookie()
함수는 어떤 #HTML 출력보다도 먼저 호출되어야 합니다.
PHP
<?php
// 쿠키 설정하기
// setcookie(name, value, expire, path, domain, secure, httponly);
// 1. 가장 기본적인 쿠키 설정 (세션 쿠키)
setcookie("username", "JohnDoe");
echo "username 쿠키가 설정되었습니다.";
?>
위 예시는 username
이라는 #이름으로 JohnDoe
라는 #값의 #쿠키를 설정합니다. 이 #쿠키는 #브라우저가 닫히면 사라지는 #세션 #쿠키입니다.
setcookie()
함수의 주요 매개변수
name
: #쿠키의 #이름입니다. (필수)value
: #쿠키에 저장할 #값입니다. (필수)expire
: #쿠키의 #만료 시간입니다. #UNIX 타임스탬프 형식으로 지정하며, 이 시간을 지나면 #쿠키는 자동으로 삭제됩니다. 설정하지 않으면 #세션 #쿠키가 됩니다.path
: #쿠키가 유효한 #서버 경로입니다./
로 설정하면 #도메인 전체에서 유효합니다.domain
: #쿠키가 유효한 #도메인입니다.secure
:true
로 설정하면 #HTTPS 연결에서만 #쿠키가 전송됩니다.httponly
:true
로 설정하면 #JavaScript를 통해 #쿠키에 접근할 수 없게 하여 #XSS 공격을 방지합니다.
PHP
<?php
// 만료 시간을 설정한 쿠키
$expire_time = time() + (60 * 60 * 24 * 7); // 7일 후 만료
setcookie("user_id", "user123", $expire_time, "/"); // 도메인 전체에서 유효
// HTTPS에서만 전송되는 보안 쿠키
setcookie("secure_data", " confidential", $expire_time, "/", "", true, true);
echo "user_id 및 secure_data 쿠키가 설정되었습니다.";
?>
쿠키 읽기: $_COOKIE
전역 변수
#PHP에서 설정된 #쿠키의 #값은 $_COOKIE
라는 #전역 #연관 #배열을 통해 읽을 수 있습니다. 이 #배열은 #클라이언트로부터 전송된 모든 #쿠키 #데이터를 포함합니다.
PHP
<?php
// 이전에 설정한 쿠키 값 읽기
if (isset($_COOKIE["username"])) {
$username = $_COOKIE["username"];
echo "환영합니다, " . $username . "님!";
} else {
echo "username 쿠키가 설정되어 있지 않습니다.";
}
echo "<br>";
if (isset($_COOKIE["user_id"])) {
$user_id = $_COOKIE["user_id"];
echo "회원 ID: " . $user_id;
} else {
echo "user_id 쿠키가 설정되어 있지 않습니다.";
}
?>
isset()
함수를 사용하여 해당 #쿠키가 존재하는지 먼저 확인하는 것이 중요합니다. 존재하지 않는 #쿠키에 접근하려고 하면 #PHP #경고가 발생할 수 있습니다.
쿠키 삭제하기
#쿠키를 #삭제하려면 setcookie()
함수를 사용하여 #만료 시간을 현재보다 이전으로 설정하면 됩니다. #브라우저는 #만료된 #쿠키를 자동으로 삭제합니다.
PHP
<?php
// 쿠키 삭제하기
setcookie("username", "", time() - 3600); // 현재 시간보다 1시간 이전으로 설정
echo "username 쿠키가 삭제되었습니다.";
echo "<br>";
setcookie("user_id", "", time() - 3600, "/"); // 경로를 함께 지정해야 합니다.
echo "user_id 쿠키가 삭제되었습니다.";
?>
#쿠키를 #설정할 때와 마찬가지로 #삭제할 때도 동일한 #경로와 #도메인(필요하다면)을 지정해야 정확하게 #쿠키가 삭제됩니다.
주의사항
#HTTP 헤더 전송:
setcookie()
는 #HTML 출력이 시작되기 전에 호출되어야 합니다. 그렇지 않으면 "Headers already sent" 오류가 발생할 수 있습니다.#보안: #쿠키는 #클라이언트 측에 저장되므로 민감한 정보를 직접 저장하는 것은 피해야 합니다. 중요한 정보는 #세션에 저장하거나 #암호화해야 합니다. #XSS 공격 방지를 위해
httponly
속성을 사용하는 것이 좋습니다.#용량 제한: #대부분의 #브라우저는 #쿠키당 #4KB의 #용량 제한이 있으며, #도메인당 #쿠키 개수에도 제한이 있습니다.
이번 포스팅에서는 #PHP에서 #쿠키를 #설정하고, #읽고, #삭제하는 방법에 대해 자세히 알아보았습니다. #쿠키는 사용자 경험을 향상시키는 데 매우 유용한 도구이지만, #보안에 유의하며 사용해야 합니다. 다음 포스팅에서는 #세션에 대해 알아보겠습니다.