PHP 쿠키 저장 안됨 문제 해결하기

프리터코더·2025년 5월 25일

php 문제 해결

목록 보기
27/79

PHP에서 쿠키가 저장되지 않는 문제는 개발자들이 자주 겪는 이슈입니다. 주요 원인과 해결책을 알아보겠습니다.

1. HTML 출력 전에 setcookie() 호출하기

문제: HTML이나 공백이 출력된 후 쿠키를 설정하려고 시도

<?php
// 올바른 방법 - HTML 출력 전에 쿠키 설정
setcookie("username", "john", time() + 3600);
?>
<!DOCTYPE html>
<html>
<body>
    <h1>쿠키가 설정되었습니다</h1>
</body>
</html>

2. 쿠키 경로와 도메인 명시하기

문제: 경로나 도메인 설정이 잘못되어 쿠키가 인식되지 않음

<?php
// 경로와 도메인을 명시적으로 설정
setcookie("user_pref", "dark_mode", time() + 3600, "/", "example.com");
?>

3. HTTPS 환경에서 secure 플래그 설정

문제: HTTPS 사이트에서 secure 플래그 없이 쿠키 설정

<?php
$is_https = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on';

setcookie("session_id", "abc123", [
    'expires' => time() + 3600,
    'path' => '/',
    'secure' => $is_https,
    'httponly' => true
]);
?>

4. 쿠키 만료시간 올바르게 설정

문제: 만료시간을 잘못 설정하여 쿠키가 즉시 삭제됨

<?php
// 1시간 후 만료 (현재 시간 + 3600초)
setcookie("temp_data", "value", time() + 3600);

// 브라우저 세션 종료시까지 유지
setcookie("session_data", "value", 0);
?>

5. 쿠키 설정 확인하기

문제: 쿠키가 실제로 설정되었는지 확인하지 않음

<?php
// 쿠키 설정
setcookie("test_cookie", "test_value", time() + 3600);

// 다음 페이지 로드에서 확인
if (isset($_COOKIE['test_cookie'])) {
    echo "쿠키가 성공적으로 설정됨: " . $_COOKIE['test_cookie'];
} else {
    echo "쿠키 설정 실패";
}
?>

주의사항

  • setcookie()는 반드시 HTML 출력 전에 호출해야 합니다
  • 로컬 개발환경에서는 localhost 대신 실제 도메인을 사용하세요
  • 브라우저 설정에서 쿠키가 차단되어 있지 않은지 확인하세요
profile
일용직 개발자. freetercoder@gmail.com

0개의 댓글