PHP - $_COOKIE: 당신의 sweat한 웹 지속성에 대한 달콤한 소개

안녕하세요, 미래의 PHP 마법사 여러분! 오늘 우리는 달콤한 쿠키의 세상으로 뛰어들어 보겠습니다. 아니, 우유에浸して먹는 그런 종류의 쿠키가 아니에요 (하지만 지금 한 개 먹고 싶지 않나요?). 우리가 이야기할 것은 웹 쿠키입니다. 웹 개발에서 기본적인 개념으로, 여러분의 코딩 여정에서 반복적으로 사용할 것입니다.

PHP - $_COOKIE

쿠키는 무엇인가요?

여러분이 좋아하는 온라인 상점을 방문하는 걸 상상해 보세요. 몇 가지 아이템을 카트에 담았는데, 그때 고양이가 꼬리를 쫓는 것이 딱 좋은 시간이라고 생각하고 당신이 분심합니다. 나중에 다시 사이트에 돌아왔을 때, 카트에 담긴 아이템들이 여전히 남아 있었으면 좋겠죠? 바로 쿠키가 이런 일을 도와줍니다!

쿠키는 웹사이트가 사용자의 컴퓨터에 저장하는 작은 데이터 조각입니다. 웹사이트가 당신이나 당신의 선호도에 대한 정보를 기억하기 위해 남기는 작은 메모와 같습니다. 쿠키는 웹 브라우징을 더 개인화되고 편리하게 만들어줍니다.

PHP에서는 $_COOKIE 슈퍼 글로벌 배열을 사용하여 쿠키를 다룹니다. 이 배열은 현재 페이지에 대해 브라우저가 보낸 모든 쿠키 값을 포함하고 있습니다.

setcookie() 함수

우리가 디지털 쿠키를 만들기 전에, 사용할 주요 도구를 살펴보겠습니다: setcookie() 함수. 이 PHP 함수는 우리가 쿠키를 생성하거나 수정할 수 있게 해줍니다.

기본 문법은 다음과 같습니다:

setcookie(name, value, expire, path, domain, secure, httponly);

이 매개변수들을 하나씩 설명해 보겠습니다:

매개변수 설명 필수 여부
name 쿠키의 이름
value 쿠키의 값 아니요
expire 쿠키의 만료 시간 (Unix 타임스탬프로) 아니요
path 쿠키가 사용 가능한 서버의 경로 아니요
domain 쿠키가 사용 가능한 도메인 아니요
secure 쿠키가 안전한 HTTPS 연결만을 통해 전송되어야 하는지 여부를 나타냅니다 아니요
httponly TRUE로 설정되면, 쿠키는 HTTP 프로토콜만을 통해 접근 가능합니다 아니요

이것이 당신을 압도할 것 같다면 걱정 마세요. 우리는 진행하면서 하나씩 자세히 설명할 것입니다.

쿠키 설정 방법

이제 손을 더러워하게 하고 쿠키를 설정해 보겠습니다! 쿠키를 설정하는 것은 나중에 읽을 메모를 남기는 것과 같습니다. 간단한 예제를 보여드리겠습니다:

<?php
setcookie("user_name", "John Doe", time() + (86400 * 30), "/");
?>

이 예제에서:

  • 우리는 "user_name"이라는 이름의 쿠키를 설정합니다
  • 그 값은 "John Doe"
  • 30일 후에 만료됩니다 (86400초 * 30)
  • 전체 웹사이트에서 사용 가능합니다 ("/")

쿠키를 설정한 후, $_COOKIE 슈퍼 글로벌 배열을 사용하여 접근할 수 있습니다:

<?php
if(isset($_COOKIE['user_name'])) {
echo "Welcome back, " . $_COOKIE['user_name'] . "!";
} else {
echo "Welcome, new user!";
}
?>

이 코드는 'user_name' 쿠키가 있는지 확인합니다. 쿠키가 있다면, 사용자의 이름으로 인사를 합니다. 그렇지 않으면 새 사용자라고 가정합니다.

쿠키 제거 방법

occasionally, you need to clear out the cookie jar. To remove a cookie, you can set its expiration time to a time in the past:

<?php
setcookie("user_name", "", time() - 3600);
?>

이렇게 하면 "user_name" 쿠키를 한 시간 전에 만료되도록 설정하여 사실상 지워줍니다.

배열 표기법을 사용하여 쿠키 설정

쿠키에 더 복잡한 데이터를 저장하고 싶다면 어떻게 하죠? PHP는 쿠키 설정에 배열 표기법을 사용할 수 있도록 허용합니다. 이는 관련 데이터를 그룹화할 때 특히 유용합니다.

예제를 보여드리겠습니다:

<?php
setcookie("user[name]", "John Doe", time() + (86400 * 30), "/");
setcookie("user[email]", "[email protected]", time() + (86400 * 30), "/");
setcookie("user[preferences][theme]", "dark", time() + (86400 * 30), "/");
?>

이 경우, 우리는 "user" 이름 아래 여러 쿠키를 설정하고 있습니다. 나중에 이 값을 접근하려면 다음과 같이 합니다:

<?php
if(isset($_COOKIE['user'])) {
echo "Name: " . $_COOKIE['user']['name'] . "<br>";
echo "Email: " . $_COOKIE['user']['email'] . "<br>";
echo "Preferred Theme: " . $_COOKIE['user']['preferences']['theme'];
}
?>

이 접근 방식은 쿠키 데이터를 더 구조화된 방식으로 정리할 수 있게 해줍니다.

쿠키를 다루는 것은 자신(또는 웹사이트 방문자)에게 메모를 남기는 것과 같습니다. 상태를 유지하고 사용자 선호도를 기억하거나 "Remember Me" 기능을 구현하는 데 매우 유용합니다.

PHP 여정을 계속하면서 쿠키의 더 많은 용도를 발견할 것입니다. 이들은 웹 개발에서 기본적인 도구로, 이를 마스터하면 더 효과적인 개발자가 될 수 있습니다.

그러니 forth와 bake some delicious cookies! (그리고 실제 쿠키를 하나 집어 먹어도 좋아요 - 코딩은 배고픈 일입니다!)

Credits: Image by storyset