PHP

์ฟ ํ‚ค๋กœ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

jin_li 2023. 4. 11. 01:04

๐Ÿช ์ฟ ํ‚ค(Cookie)

: ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ ‘์†ํ•  ๋•Œ ์„œ๋ฒ„์—์„œ ๋ณด๋‚ด์ฃผ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ. ๋กœ๊ทธ์ธ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ, ๋ฐฐ๋„ˆ ๊ด‘๊ณ  ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋จ.

 

๋กœ๊ทธ์ธ ๊ณผ์ •์„ ์˜ˆ๋กœ ๋“ค๋ฉด,

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์›น ํŽ˜์ด์ง€์— ์ ‘์†.

2. ์‚ฌ์šฉ์ž๊ฐ€ ์›นํŽ˜์ด์ง€์— ๋กœ๊ทธ์ธ.

3. ์„œ๋ฒ„์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์— ์›น ํŽ˜์ด์ง€์™€ ์ฟ ํ‚ค๋ฅผ ์ „์†ก.

4. ์ด ์ฟ ํ‚ค ์ •๋ณด๋Š” ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ ํด๋”์— ์ €์žฅ๋จ.

5. ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ธก์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํ“จํ„ฐ ํด๋”์— ํ•ด๋‹น ์ฟ ํ‚ค๊ฐ€ ์žˆ๋Š” ์ง€๋ฅผ ์ฒดํฌํ•˜์—ฌ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ.

 

 

 

์ฟ ํ‚ค ์„ค์ •ํ•˜๊ธฐ

 

php์—์„œ ์ฟ ํ‚ค ์„ค์ •ํ•  ๋•Œ๋Š” setcookie() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

setcookie(str name, str value, int expire)

name : ์ฟ ํ‚ค ์ด๋ฆ„
value : ์ฟ ํ‚ค ์ด๋ฆ„์— ์„ค์ •๋˜๋Š” ์ฟ ํ‚ค ๊ฐ’
expire : ์ฟ ํ‚ค๊ฐ€ ๋งŒ๋ฃŒ๋˜๋Š” ์ผ์‹œ. ์˜ˆ๋ฅผ ๋“ค์–ด, time() + 24*60*60*30์€ 30์ผ ๊ฐ„ ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•˜๊ฒŒ ํ•œ๋‹ค.

 

์˜ˆ์ œ) cookie.php ์†Œ์Šค์ฝ”๋“œ.

<?php
// 24*60*60 : 1์ผ์„ ๋‚˜ํƒ€๋ƒ„
// ๋”ฐ๋ผ์„œ ์•„๋ž˜์˜ ์ฟ ํ‚ค dessert๋Š” pudding์ด๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ , 30์ผ ์ดํ›„์— ๋งŒ๋ฃŒ๋จ
setcookie("dessert""pudding"time() + 24*60*60 * 30);
?>
cs

 

 

 

 

์ฟ ํ‚ค ์ ‘๊ทผํ•˜๊ธฐ

 

์œ„์˜ cookie.php ํŒŒ์ผ์—์„œ ์„ค์ •ํ•œ dessert ์ฟ ํ‚ค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€, ๊ทธ๋ƒฅ $_COOKIE ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

$_COOKIE : ์ฟ ํ‚ค์— ์‚ฌ์šฉ๋˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜. ํ•ด๋‹น ์ฟ ํ‚ค ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

์˜ˆ์ œ) cookie_access.php ์†Œ์Šค์ฝ”๋“œ.

<?php
if(isset($_COOKIE["dessert"])){
    echo $_COOKIE["dessert"]." ๋จน์„๊ฑฐ์ž„";
}
else {
    echo "dessert ์ฟ ํ‚ค ์–ด๋””๊ฐ”๋ƒ...?";
}
cs

 

cookie.php๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•ด์„œ ์ฟ ํ‚ค ์ €์žฅํ•œ ๋’ค cookie_access.php๋ฅผ ํ†ตํ•ด ์ฟ ํ‚ค์— ์ ‘๊ทผํ•œ๋‹ค.

 

 

 

 

์ฟ ํ‚ค ์‚ญ์ œํ•˜๊ธฐ

 

cookie.phpํŒŒ์ผ์—์„œ ์„ค์ •ํ•œ dessert ์ฟ ํ‚ค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์€,

setcookie() ํ•จ์ˆ˜๋กœ ์‚ญ์ œํ•  ์ฟ ํ‚ค์˜ ๊ฐ’์„ null๋กœ ์ฃผ๊ณ , ๋งŒ๋ฃŒ์ผ์„ ํ˜„์žฌ ์ด์ „ ์‹œ๊ฐ„์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.

 

์˜ˆ์ œ) cookie_delete.php ์†Œ์Šค์ฝ”๋“œ.

<?php
// dessert ์ฟ ํ‚ค์˜ ๊ฐ’์„ null("")๋กœ ์ค€ ๋’ค, ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.
// ์ด ๋•Œ ์‹œ๊ฐ„์€ ํ˜„์žฌ ์ด์ „์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. time()-3600 ์€ ํ˜„์žฌ์‹œ๊ฐ„ 1์‹œ๊ฐ„ ์ „์„ ๋œปํ•œ๋‹ค.
setcookie("dessert"""time()-3600);
echo "ํ‘ธ๋”ฉ ๋จน์–ด์„œ ์‚ญ์ œํ•จ";
?>
cs

 

 

cookie_delete.php ์‹คํ–‰ํ–ˆ์„ ๋•Œ.

 

 

๋‹ค์‹œ cookie_access.php ์‹คํ–‰ํ–ˆ์„ ๋•Œ cookie๊ฐ’ ์—†์„ ๋•Œ์˜ ํ…์ŠคํŠธ ์ •์ƒ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

 

 

์ฟ ํ‚ค๋กœ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ!

 

 

 

1. ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ๋ฉ”์ธํŽ˜์ด์ง€

 

cookie_page.php ์†Œ์Šค ์ฝ”๋“œ

1
2
3
4
5
6
7
<h3>์ฟ ํ‚ค๋กœ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ~~</h3>
<?php
    if(!isset($_COOKIE["userid"]))
        echo "<a href='cookie_login.php'>๋กœ๊ทธ์ธ</a>";
    else
        echo "<a href='cookie_logout.php'>๋กœ๊ทธ์•„์›ƒ</a>";
?>
cs

 

 

3~6๋ฒˆ ํ–‰์—์„œ, ํ˜„์žฌ๋Š” userid ์ฟ ํ‚ค๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์€ ์ƒํƒœ์ด๋ฏ€๋กœ isset($_COOKIE["userid"])๋Š” False ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

๋”ฐ๋ผ์„œ 4ํ–‰์˜ ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜์–ด '๋กœ๊ทธ์ธ' ์ด ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ๋‹ค.

'๋กœ๊ทธ์ธ' ๋งํฌ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ cookie_login.php๋กœ ํŽ˜์ด์ง€ ์ด๋™๋˜๊ฒŒ ํ•œ๋‹ค.

 

 

 

 

 

 

 

 

2. ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ : ์ฟ ํ‚ค ์„ค์ •

 

๋‹ค์Œ์œผ๋กœ, cookie_login.php์—์„œ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ฟ ํ‚ค๋ฅผ ์„ค์ •ํ•˜์ž.

1
2
3
4
5
6
7
<?php
    setcookie("userid","yj000"time() + 24*60*60 * 30);
 
echo "<script>
location.href = 'cookie_page.php';
    </script>";
?>
cs

 

 

์œ„์˜ cookie_login.php ํŒŒ์ผ์ด ์‹คํ–‰๋˜๋ฉด 3ํ–‰์— ์˜ํ•ด userid ์ฟ ํ‚ค๊ฐ€ ์„ค์ •๋˜๊ณ , 6ํ–‰์— ์˜ํ•ด cookie_page.php๋กœ ํŽ˜์ด์ง€๊ฐ€ ์ด๋™๋œ๋‹ค.

์ฐธ๊ณ ) location.href : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ location ๊ฐ์ฒด์˜ href ์†์„ฑ์€ ํ˜„์žฌ ์ ‘์† ์ค‘์ธ ํŽ˜์ด์ง€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. ์†์„ฑ ๊ฐ’์— URL ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ฟ ํ‚ค ๊ฐ’ ์ž˜ ์„ค์ •๋˜์—ˆ๋‹ค

 

 

 

 

 

3. ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ : ์ฟ ํ‚ค ์‚ญ์ œ

 

'๋กœ๊ทธ์•„์›ƒ' ๋งํฌ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ cookie_page.php์˜ 6ํ–‰์— ์˜ํ•ด cookie_logout.php ํŽ˜์ด์ง€๋กœ ์ด๋™๋œ๋‹ค.

cookie_logout.php ์—์„œ ์ฟ ํ‚ค๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

1
2
3
4
5
6
7
8
<?php
    // ์ฟ ํ‚ค ์‚ญ์ œ
    setcookie("userid"""time()-3600);
 
echo "<script>
    location.href = 'cookie_page.php';
    </script>";
?>
cs

 

 

์œ„์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ์ฟ ํ‚ค๊ฐ€ ์‚ญ์ œ๋˜๊ณ , ๋”ฐ๋ผ์„œ cookie_page.php์˜ 3ํ–‰์—์„œ userid ์ฟ ํ‚ค์˜ ๊ฐ’์ด null์ด ๋˜๋ฏ€๋กœ ๋‹ค์‹œ '๋กœ๊ทธ์ธ'์ด ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ๋‹ค.

 

์ฟ ํ‚ค ์‚ญ์ œ ๋œ ๊ฒƒ ํ™•์ธ

 

 

์ฐธ๊ณ ๋„์„œ: PHP + MySQL ์ž…๋ฌธ ํ™ฉ์žฌํ˜ธ ์ €. 

'PHP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์„ธ์…˜์œผ๋กœ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ  (0) 2023.04.11
์—ฐ์Šต๋ฌธ์ œํ’€์ด  (0) 2023.04.02