
PHP ์จ๋ผ์ธ ๊ฐ์
>PHP - ์ด๊ธ
๐ 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)์ด๋?
#์ธ์ ์ #์ฌ์ฉ์ #์ ๋ณด๋ฅผ #์๋ฒ ์ธก์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. #์ฟ ํค๊ฐ #ํด๋ผ์ด์ธํธ(#๋ธ๋ผ์ฐ์ )์ #๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ๋ฉด, #์ธ์ ์ #์๋ฒ์ #๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ฐ ์ฌ์ฉ์์๊ฒ ๊ณ ์ ํ #์ธ์ #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()
ํจ์๋ฅผ ์ด์ฉํ #์ธ์
#์ค์ ๋ฐ #์ฌ์ฉ, ๊ทธ๋ฆฌ๊ณ #์ญ์ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค. #์ธ์
์ #์ฌ์ฉ์ #์ํ๋ฅผ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ธ ๋๊ตฌ์
๋๋ค.