216.73.216.34 TODAY : 207

PHP ์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ดˆ๊ธ‰

๐Ÿ“š PHP ์ดˆ๊ธ‰ - 8์ฃผ์ฐจ: ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๋ฐ ์ฟ ํ‚ค/์„ธ์…˜ - 03 ์„ธ์…˜(Session) ์„ค์ • ๋ฐ ์‚ฌ์šฉ

๐Ÿ“š PHP ์ดˆ๊ธ‰ - 8์ฃผ์ฐจ: ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๋ฐ ์ฟ ํ‚ค/์„ธ์…˜ - 03 ์„ธ์…˜(Session) ์„ค์ • ๋ฐ ์‚ฌ์šฉ
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-07-05 14:12:22
์กฐํšŒ์ˆ˜ 52
- ์„ค๋ช…

๐Ÿ“š PHP ์ดˆ๊ธ‰ - 8์ฃผ์ฐจ: ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๋ฐ ์ฟ ํ‚ค/์„ธ์…˜ - 03 ์„ธ์…˜(Session) ์„ค์ • ๋ฐ ์‚ฌ์šฉ





์ง€๋‚œ ์‹œ๊ฐ„ #์ฟ ํ‚ค์— ์ด์–ด, ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” #PHP์˜ ๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ #์ƒํƒœ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ธ #์„ธ์…˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #์„ธ์…˜์€ #์ฟ ํ‚ค์™€ ํ•จ๊ป˜ #์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž #์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ž…๋‹ˆ๋‹ค.







์„ธ์…˜(Session)์ด๋ž€?


uploadImage


#์„ธ์…˜์€ #์‚ฌ์šฉ์ž #์ •๋ณด๋ฅผ #์„œ๋ฒ„ ์ธก์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. #์ฟ ํ‚ค๊ฐ€ #ํด๋ผ์ด์–ธํŠธ(#๋ธŒ๋ผ์šฐ์ €)์— #๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ˜๋ฉด, #์„ธ์…˜์€ #์„œ๋ฒ„์— #๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณ ์œ ํ•œ #์„ธ์…˜ #ID๊ฐ€ ๋ถ€์—ฌ๋˜๋ฉฐ, ์ด #์„ธ์…˜ #ID๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ #์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด #ํด๋ผ์ด์–ธํŠธ์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค. #ํด๋ผ์ด์–ธํŠธ๋Š” ์ด #์„ธ์…˜ #ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ #์„œ๋ฒ„์— ์ €์žฅ๋œ ์ž์‹ ์˜ #์„ธ์…˜ #๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.




์™œ ์„ธ์…˜์ด ํ•„์š”ํ• ๊นŒ์š”?




  • #๋ณด์•ˆ์„ฑ: ๋ฏผ๊ฐํ•œ #๋ฐ์ดํ„ฐ(์˜ˆ: ๋กœ๊ทธ์ธ ์ •๋ณด, ๊ฐœ์ธ ์‹๋ณ„ ์ •๋ณด)๋Š” #ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ €์žฅ๋˜๋Š” #์ฟ ํ‚ค๋ณด๋‹ค #์„œ๋ฒ„ ์ธก์— ์ €์žฅ๋˜๋Š” #์„ธ์…˜์ด ํ›จ์”ฌ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

  • #์šฉ๋Ÿ‰ ์ œํ•œ ์—†์Œ: #์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ #์„ธ์…˜์€ #์„œ๋ฒ„์˜ #๋ฉ”๋ชจ๋ฆฌ๋‚˜ #๋””์Šคํฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, #ํด๋ผ์ด์–ธํŠธ #์ธก #์šฉ๋Ÿ‰ ์ œํ•œ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • #๋‹ค์–‘ํ•œ #๋ฐ์ดํ„ฐ ํƒ€์ž…: #์„ธ์…˜์€ #๋ฐฐ์—ด์ด๋‚˜ #๊ฐ์ฒด์™€ ๊ฐ™์€ ๋ณต์žกํ•œ #๋ฐ์ดํ„ฐ #ํƒ€์ž…๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.







์„ธ์…˜ ์‹œ์ž‘ํ•˜๊ธฐ: session_start() ํ•จ์ˆ˜

uploadImage



#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 ์ „์—ญ ๋ฐฐ์—ด


uploadImage


#์„ธ์…˜ #๋ฐ์ดํ„ฐ๋Š” $_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()๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.







์„ธ์…˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ

uploadImage



#์„ธ์…˜ #๋ฐ์ดํ„ฐ๋ฅผ #์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.




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() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ #์„ธ์…˜ #์„ค์ • ๋ฐ #์‚ฌ์šฉ, ๊ทธ๋ฆฌ๊ณ  #์‚ญ์ œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. #์„ธ์…˜์€ #์‚ฌ์šฉ์ž #์ƒํƒœ๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.