์จ๋ผ์ธ ๊ฐ์
>PHP - ์ด๊ธ
๐ PHP ์ด๊ธ - 8์ฃผ์ฐจ: ํ์ผ ์ ์ถ๋ ฅ ๋ฐ ์ฟ ํค/์ธ์  - 03 ์ธ์ (Session) ์ค์  ๋ฐ ์ฌ์ฉ
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 98
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-07-05 14:12:22
 
- ์ค๋ช
๐ PHP ์ด๊ธ - 8์ฃผ์ฐจ: ํ์ผ ์ ์ถ๋ ฅ ๋ฐ ์ฟ ํค/์ธ์  - 03 ์ธ์ (Session) ์ค์  ๋ฐ ์ฌ์ฉ
์ง๋ ์๊ฐ #์ฟ ํค์ ์ด์ด, ์ด๋ฒ ํฌ์คํ ์์๋ #PHP์ ๋ ๋ค๋ฅธ ์ค์ํ #์ํ ๊ด๋ฆฌ ๋ฉ์ปค๋์ฆ์ธ #์ธ์ ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค. #์ธ์ ์ #์ฟ ํค์ ํจ๊ป #์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์ #์ ๋ณด๋ฅผ ์ ์งํ๋ ๋ฐ ํ์์ ์ธ ์์์ ๋๋ค.
์ธ์ (Session)์ด๋?
#์ธ์ ์ #์ฌ์ฉ์ #์ ๋ณด๋ฅผ #์๋ฒ ์ธก์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. #์ฟ ํค๊ฐ #ํด๋ผ์ด์ธํธ(#๋ธ๋ผ์ฐ์ )์ #๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ๋ฉด, #์ธ์ ์ #์๋ฒ์ #๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ฐ ์ฌ์ฉ์์๊ฒ ๊ณ ์ ํ #์ธ์  #ID๊ฐ ๋ถ์ฌ๋๋ฉฐ, ์ด #์ธ์  #ID๋ ์ผ๋ฐ์ ์ผ๋ก #์ฟ ํค๋ฅผ ํตํด #ํด๋ผ์ด์ธํธ์ ์ ์ก๋ฉ๋๋ค. #ํด๋ผ์ด์ธํธ๋ ์ด #์ธ์  #ID๋ฅผ ์ฌ์ฉํ์ฌ #์๋ฒ์ ์ ์ฅ๋ ์์ ์ #์ธ์  #๋ฐ์ดํฐ์ ์ ๊ทผํฉ๋๋ค.
์ ์ธ์ ์ด ํ์ํ ๊น์?
#๋ณด์์ฑ: ๋ฏผ๊ฐํ #๋ฐ์ดํฐ(์: ๋ก๊ทธ์ธ ์ ๋ณด, ๊ฐ์ธ ์๋ณ ์ ๋ณด)๋ #ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ #์ฟ ํค๋ณด๋ค #์๋ฒ ์ธก์ ์ ์ฅ๋๋ #์ธ์ ์ด ํจ์ฌ ์์ ํฉ๋๋ค.
#์ฉ๋ ์ ํ ์์: #์ฟ ํค์ ๋ฌ๋ฆฌ #์ธ์ ์ #์๋ฒ์ #๋ฉ๋ชจ๋ฆฌ๋ #๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ฏ๋ก, #ํด๋ผ์ด์ธํธ #์ธก #์ฉ๋ ์ ํ์ ๊ตฌ์ ๋ฐ์ง ์์ต๋๋ค.
#๋ค์ํ #๋ฐ์ดํฐ ํ์ : #์ธ์ ์ #๋ฐฐ์ด์ด๋ #๊ฐ์ฒด์ ๊ฐ์ ๋ณต์กํ #๋ฐ์ดํฐ #ํ์ ๋ ์ ์ฅํ ์ ์์ต๋๋ค.
์ธ์
 ์์ํ๊ธฐ: session_start() ํจ์
#PHP์์ #์ธ์
์ ์ฌ์ฉํ๋ ค๋ฉด ์คํฌ๋ฆฝํธ ์์ ๋ถ๋ถ์์ session_start() ํจ์๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค. ์ด ํจ์๋ ๊ธฐ์กด #์ธ์
์ ์์ํ๊ฑฐ๋, #์ธ์
์ด ์๋ ๊ฒฝ์ฐ ์๋ก์ด #์ธ์
์ ์์ฑํฉ๋๋ค. session_start() ์ญ์ #HTTP #ํค๋๋ฅผ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ #HTML ์ถ๋ ฅ ์ด์ ์ ํธ์ถ๋์ด์ผ ํฉ๋๋ค.
PHP
<?php
session_start(); // ์ธ์
 ์์
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>์ธ์
 ์ค์  ์์ </title>
</head>
<body>
    <h1>์ธ์
 ์ค์ ํ๊ธฐ</h1>
    <?php
    // ์ธ์
 ๋ณ์์ ๊ฐ ์ ์ฅ
    $_SESSION["username"] = "Alice";
    $_SESSION["user_id"] = 123;
    $_SESSION["logged_in"] = true;
    echo "<p>์ธ์
 ๋ณ์๊ฐ ์ค์ ๋์์ต๋๋ค.</p>";
    echo "<p><a href='read_session.php'>์ธ์
 ๊ฐ ํ์ธํ๊ธฐ</a></p>";
    ?>
</body>
</html>
session_start() ํจ์๊ฐ ํธ์ถ๋๋ฉด #PHP๋ ์๋์ผ๋ก #์ธ์
 #ID๋ฅผ ์์ฑํ๊ณ , ์ด #ID๋ฅผ ํฌํจํ๋ #์ธ์
 #์ฟ ํค๋ฅผ #ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํฉ๋๋ค. ์ดํ๋ถํฐ #ํด๋ผ์ด์ธํธ๋ ์ด #์ธ์
 #์ฟ ํค๋ฅผ ํตํด #์๋ฒ์ ์์ ์ #์ธ์
 #๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฒ ๋ฉ๋๋ค.
์ธ์
 ๋ณ์ ์ฌ์ฉํ๊ธฐ: $_SESSION ์ ์ญ ๋ฐฐ์ด
#์ธ์
 #๋ฐ์ดํฐ๋ $_SESSION์ด๋ผ๋ #์ ์ญ #์ฐ๊ด #๋ฐฐ์ด์ ํตํด ์ ์ฅํ๊ณ  ์ ๊ทผํฉ๋๋ค. #์ฟ ํค์ $_COOKIE์ ์ ์ฌํ๊ฒ, ํค-๊ฐ ์ ํํ๋ก #๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
PHP
<?php
session_start(); // ์ธ์
 ์์ (์ธ์
 ๊ฐ์ ์ฝ๊ธฐ ์ํด์๋ ๋ฐ๋์ ํธ์ถํด์ผ ํจ)
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>์ธ์
 ์ฝ๊ธฐ ์์ </title>
</head>
<body>
    <h1>์ธ์
 ๊ฐ ์ฝ๊ธฐ</h1>
    <?php
    if (isset($_SESSION["username"])) {
        $username = $_SESSION["username"];
        echo "<p>์ฌ์ฉ์ ์ด๋ฆ: " . $username . "</p>";
    } else {
        echo "<p>username ์ธ์
 ๋ณ์๊ฐ ์ค์ ๋์ด ์์ง ์์ต๋๋ค.</p>";
    }
    if (isset($_SESSION["user_id"])) {
        $user_id = $_SESSION["user_id"];
        echo "<p>์ฌ์ฉ์ ID: " . $user_id . "</p>";
    } else {
        echo "<p>user_id ์ธ์
 ๋ณ์๊ฐ ์ค์ ๋์ด ์์ง ์์ต๋๋ค.</p>";
    }
    if (isset($_SESSION["logged_in"]) && $_SESSION["logged_in"] === true) {
        echo "<p>๋ก๊ทธ์ธ ์ํ์
๋๋ค.</p>";
    } else {
        echo "<p>๋ก๊ทธ์ธ ์ํ๊ฐ ์๋๋๋ค.</p>";
    }
    echo "<p><a href='destroy_session.php'>์ธ์
 ์ญ์ ํ๊ธฐ</a></p>";
    ?>
</body>
</html>
$_SESSION ๋ฐฐ์ด์ ์ ๊ทผํ๊ธฐ ์ ์๋ ํญ์ session_start()๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค.
์ธ์  ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
#์ธ์  #๋ฐ์ดํฐ๋ฅผ #์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง์ ๋๋ค.
1. ํน์  ์ธ์
 ๋ณ์ ์ญ์ : unset() ํจ์
ํน์  #์ธ์
 #๋ณ์๋ง #์ญ์ ํ๊ณ  ์ถ์ ๋ unset() ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
PHP
<?php
session_start(); // ์ธ์
 ์์
if (isset($_SESSION["username"])) {
    unset($_SESSION["username"]); // username ์ธ์
 ๋ณ์ ์ญ์ 
    echo "<p>username ์ธ์
 ๋ณ์๊ฐ ์ญ์ ๋์์ต๋๋ค.</p>";
} else {
    echo "<p>username ์ธ์
 ๋ณ์๊ฐ ์ด๋ฏธ ์ญ์ ๋์๊ฑฐ๋ ์กด์ฌํ์ง ์์ต๋๋ค.</p>";
}
echo "<p><a href='read_session.php'>์ธ์
 ๊ฐ ๋ค์ ํ์ธํ๊ธฐ</a></p>";
?>
2. ๋ชจ๋  ์ธ์
 ๋ฐ์ดํฐ ๋ฐ ์ธ์
 ํ๊ดด: session_unset() ๋ฐ session_destroy() ํจ์
๋ชจ๋  #์ธ์
 #๋ณ์๋ฅผ #์ญ์ ํ๊ณ , #์ธ์
 ์์ฒด๋ฅผ ์์ ํ ํ๊ดดํ๋ ค๋ฉด session_unset()๊ณผ session_destroy() ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
session_unset(): ํ์ฌ #์คํฌ๋ฆฝํธ์์ ๋ฑ๋ก๋ ๋ชจ๋ #์ธ์  #๋ณ์๋ฅผ #์ญ์ ํฉ๋๋ค. (์ค์  #์ธ์  #ํ์ผ์ ๋จ์์์ ์ ์์ต๋๋ค.)session_destroy(): #์ธ์  #๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ #์ธ์  #ํ์ผ์ #์ญ์ ํ๊ณ , #์ธ์ ์ ์์ ํ #ํ๊ดดํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก #๋ก๊ทธ์์ ์ ์ฌ์ฉ๋ฉ๋๋ค.
PHP
<?php
session_start(); // ์ธ์
 ์์
// ๋ชจ๋  ์ธ์
 ๋ณ์ ์ญ์ 
session_unset();
// ์ธ์
 ํ๊ดด (์ธ์
 ํ์ผ ์ญ์ )
session_destroy();
echo "<p>๋ชจ๋  ์ธ์
 ๋ณ์๊ฐ ์ญ์ ๋๊ณ  ์ธ์
์ด ํ๊ดด๋์์ต๋๋ค. <a href='set_session.php'>๋ค์ ์ธ์
 ์ค์ ํ๊ธฐ</a></p>";
?>
session_unset()๋ง์ผ๋ก๋ #ํด๋ผ์ด์ธํธ์ #์ธ์
 #์ฟ ํค๊ฐ #์ญ์ ๋์ง ์์ผ๋ฏ๋ก, ์์ ํ ์๋ก์ด #์ธ์
์ ์์ํ๋ ค๋ฉด session_destroy()๊น์ง ํธ์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ธ์  ์ฃผ์์ฌํญ
#HTTP ํค๋ ์ ์ก:
session_start()ํจ์๋ ํญ์ #HTML ์ถ๋ ฅ ์ด์ ์ ํธ์ถ๋์ด์ผ ํฉ๋๋ค.#๋ณด์: #์ธ์ ์ #์๋ฒ์ ์ ์ฅ๋๋ฏ๋ก #์ฟ ํค๋ณด๋ค ์์ ํ์ง๋ง, #์ธ์  #ํ์ด์ฌํน๊ณผ ๊ฐ์ #๋ณด์ ์ํ์ ๋๋นํด์ผ ํฉ๋๋ค. #์ธ์  #ID๊ฐ ๋ ธ์ถ๋์ง ์๋๋ก #HTTPS๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
#์ธ์  #๋ง๋ฃ: #์ธ์ ์ #์๋ฒ์ ๋ถ๋ด์ ์ค ์ ์์ผ๋ฏ๋ก, ์ผ์  ์๊ฐ ๋์ ํ๋์ด ์์ผ๋ฉด ์๋์ผ๋ก #๋ง๋ฃ๋๋๋ก ์ค์ ๋ฉ๋๋ค. ๊ธฐ๋ณธ #์ธ์  #๋ง๋ฃ ์๊ฐ์
php.ini์session.gc_maxlifetime์ค์ ์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค.
์ด๋ฒ ํฌ์คํ
์์๋ #PHP #์ธ์
์ ๊ฐ๋
๊ณผ session_start(), $_SESSION, unset(), session_unset(), session_destroy() ํจ์๋ฅผ ์ด์ฉํ #์ธ์
 #์ค์  ๋ฐ #์ฌ์ฉ, ๊ทธ๋ฆฌ๊ณ  #์ญ์  ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค. #์ธ์
์ #์ฌ์ฉ์ #์ํ๋ฅผ ์์ ํ๊ณ  ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ธ ๋๊ตฌ์
๋๋ค.