꿈을 바구니에 담아 간직하다 보면!!

지금 참 힘들죠? 근데 내일은 지금보다 덜 힘들거예요

힘든 건 오늘만이 아니다. 내일도, 그리고 그 다음 날도 계속될 것이다.

PHP Tip

쿠키 값으로 방문자 횟수 표시

duaidot 2025. 12. 16. 07:19

📌 코드 흐름 요약

  1. 쿠키 이름 지정→ 방문 횟수를 저장할 쿠키 이름을 visitCount로 설정
  2. $cookieName = 'visitCount';
  3. 현재 쿠키 값 확인→ 쿠키가 있으면 숫자로 변환, 없거나 잘못된 값이면 0으로 초기화
  4. $current = isset($_COOKIE[$cookieName]) && ctype_digit($_COOKIE[$cookieName]) ? intval($_COOKIE[$cookieName]) : 0;
  5. 방문 횟수 증가→ 현재 값에 1을 더해 새로운 방문 횟수 계산
  6. $next = $current + 1;
  7. 쿠키 저장 (보안 옵션 포함)
  8. setcookie($cookieName, strval($next), [ 'expires' => time() + 365*24*60*60, // 1년 유지 'path' => '/', // 사이트 전체에서 사용 가능 'secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'), // HTTPS에서만 전송 'httponly' => true, // JS 접근 불가 (보안 강화) 'samesite' => 'Lax' // 크로스사이트 요청 제한 ]);
  9. 결과 출력→ 화면에 방문 횟수를 표시
  10. echo "당신의 방문 횟수: {$next}회";

<?php
// 쿠키 이름 지정
$cookieName = 'visitCount';

// 현재 쿠키 값 확인 (숫자면 변환, 없거나 잘못된 값이면 0으로 초기화)
$current = (isset($_COOKIE[$cookieName]) && ctype_digit($_COOKIE[$cookieName]))
    ? intval($_COOKIE[$cookieName])
    : 0;

// 방문 횟수 증가
$next = $current + 1;

// 쿠키 저장 (보안 옵션 포함)
setcookie(
    $cookieName,
    strval($next),
    [
        'expires'  => time() + 365 * 24 * 60 * 60, // 1년 유지
        'path'     => '/',                         // 사이트 전체에서 사용 가능
        'secure'   => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'), // HTTPS에서만 전송
        'httponly' => true,                        // JS 접근 불가 (보안 강화)
        'samesite' => 'Lax'                        // 크로스사이트 요청 제한
    ]
);

// 결과 출력
echo "당신의 방문 횟수: {$next}회";
?>


🎯 최종 동작

  • 처음 방문 시 → 당신의 방문 횟수: 1회
  • 다시 방문 시 → 쿠키 값이 증가하여 2회, 3회 … 계속 누적
  • 쿠키는 1년 동안 유지되며, 보안 옵션(secure, httponly, samesite)으로 안전하게 관리됨

👉 이렇게 정리하면, 이 코드의 목적은 사용자 브라우저에 쿠키를 저장해 방문 횟수를 누적 기록하고 출력하는 것이에요.