
고급 PHP 프로그래밍 – 세션과 쿠키 관리 – 4 – 쿠키 설정과 조회
안녕하세요, 여러분! 😊
오늘은 웹 개발에서 사용자 경험을 향상시키기 위한 소중한 도구,
**쿠키(Cookie)**의 설정과 조회 방법에 대해 알아보겠습니다.
이전 시간에 쿠키의 개념과 활용 목적에 대해 배웠다면,
이번 시간엔 실제 코드를 통해 쿠키를 정확하게 설정하고 읽어들이는 방법을
실전 예제와 함께 차근차근 설명드릴게요.
쿠키는 사용자 브라우저에 저장되는 작은 데이터이기 때문에,
조심해서 써야 하지만 정말 요긴한 기능이랍니다.
쿠키 설정하기 – setcookie()
함수
쿠키를 설정할 때는 반드시 HTTP 응답 헤더가 출력되기 전에 setcookie()
함수를 사용해야 해요.
즉, echo
, print
, HTML 태그 출력 전에 사용해야 합니다.
기본 사용법
php복사편집setcookie(name, value, expire, path, domain, secure, httponly);
인자
설명
name
쿠키 이름 (예: “user_id”)
value
저장할 값 (문자열)
expire
만료 시간 (타임스탬프, time() + 초 단위)
path
쿠키가 유효한 경로
domain
쿠키를 적용할 도메인
secure
HTTPS에서만 전송될지 여부
httponly
JavaScript 접근 제한 여부
예제 1: 기본 쿠키 설정
php복사편집setcookie("user", "honggildong", time() + 3600, "/");
-
쿠키 이름:
user
-
쿠키 값:
honggildong
-
만료: 1시간 후
-
적용 경로: 사이트 전체(
/
) -
-
예제 2: 고급 보안 옵션 포함 설정
php복사편집setcookie(
"auth_token",
"abc123xyz",
[
"expires" => time() + 86400, // 1일
"path" => "/",
"secure" => true, // HTTPS에서만 전송
"httponly" => true, // JS 접근 제한
"samesite" => "Strict" // 크로스사이트 전송 제한
]
);
📌 PHP 7.3 이상에서는 배열 형식으로 옵션 설정 가능해요!
쿠키 조회하기 – $_COOKIE
전역 배열
쿠키는 서버에 도달한 다음 요청부터 $_COOKIE
슈퍼 글로벌 배열을 통해 읽을 수 있어요.
예제 1: 쿠키 읽기
php복사편집if (isset($_COOKIE['user'])) {
echo "환영합니다, " . $_COOKIE['user'] . "님!";
} else {
echo "쿠키가 설정되지 않았습니다.";
}
예제 2: 모든 쿠키 확인
php복사편집echo "<pre>";
print_r($_COOKIE);
echo "</pre>";
쿠키 삭제하기
쿠키는 삭제 함수가 따로 없고,
유효 시간을 과거로 설정하면 삭제돼요.
예제: 쿠키 삭제
php복사편집setcookie("user", "", time() - 3600, "/"); // 1시간 전으로 설정
쿠키 설정 흐름 요약
-
setcookie()
로 쿠키를 설정 -
설정된 쿠키는 브라우저에 저장
-
다음 HTTP 요청부터
$_COOKIE
로 읽을 수 있음 -
삭제하려면
time() - n
형태로 만료시간을 조정
실전 예제: 자동 로그인 쿠키 만들기
php복사편집// login.php
if ($_POST['remember'] == "on") {
setcookie("remember_me", $_POST['user_id'], time() + 86400 * 30, "/");
}
php복사편집// index.php
if (isset($_COOKIE['remember_me'])) {
echo "자동 로그인: " . $_COOKIE['remember_me'];
}
✔ 실제 구현 시 토큰을 암호화하고, DB와 함께 검증해야 보안이 강화돼요!
쿠키 활용 팁 💡
상황
쿠키 사용 예시
팝업 다시 보지 않기
setcookie('hide_popup', '1', time() + 86400, '/')
최근 본 상품
setcookie('last_product', '101', time() + 3600)
방문 횟수 저장
방문 시마다 visit_count
증가 쿠키
쿠키 사용 시 주의사항 ✅
항목
설명
setcookie()
는 HTML 출력 전에 호출
headers already sent
오류 방지
문자열 외에는 직접 저장 불가
배열/객체는 json_encode()
후 저장
보안 정보는 쿠키에 저장 금지
비밀번호, 민감 정보는 금지 ❌
용량 제한 존재
4KB 이하, 너무 많으면 브라우저가 무시함
브라우저마다 다를 수 있음
동작 방식은 브라우저마다 조금씩 다름
마무리하며 😊
쿠키는 작은 기능 같지만, 사용자 경험을 높이고, 웹사이트의 유용함을 끌어올리는
아주 강력한 도구입니다.
자동 로그인, 팝업 관리, 방문자 추적 등 다양한 곳에서 정말 많이 쓰여요!
오늘 배운 setcookie()
와 $_COOKIE
의 활용 방법을 잘 익혀두시면
어떤 프로젝트에서도 사용자 맞춤형 기능을 쉽게 만들 수 있답니다 💪
다음 시간에는 세션과 쿠키를 조합한 로그인 유지 시스템을 실습해볼 예정이니 기대해 주세요!
오늘도 행복한 개발자 되세요~ 🍪😊💻