[php Advanced] 2주차(4회차) / php 쿠키, 세션
이번 회차에선 php 쿠키와 세션에 대해 배웠다.
php 쿠키, 세션
쿠키 생성/검색
쿠키란? - 쿠키는 사용자를 식별하는데 사용된다. 브라우저로 페이지를 요청할 때 쿠키도 같이 보낸다.
더 자세한 내용: https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4
HTTP 쿠키 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. HTTP 쿠키(HTTP cookie)란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 사용자의 웹 브라우저를 통해 인터넷 사용자
ko.wikipedia.org
쿠키를 생성하기 위해선 'setcookie() 함수'를 사용한다.
먼저 코드부터 봐보자.
<?php
//쿠키 이름 = user
$cookie_name = "user";
//쿠키 값 = namgi
$cookie_value = "namgi";
// '86400' = 1일
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
//쿠키 설정 확인
if(!isset($_COOKIE[$cookie_name])) {
//쿠키가 생성되지 않았을 때
echo "쿠키 이름 '" . $cookie_name . "' 는/은 생성되지 않았습니다.";
//쿠키가 생성됐을 때
} else {
echo "쿠키 '" . $cookie_name . "' 는 생성 되었습니다.<br>";
//쿠키 값
echo "쿠키 값: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
'setcookie() 함수'는 <html> 태그 앞에 나타나야 한다.
코드를 설명하면,
쿠키 값이 'namgi'인 'user'라는 쿠키를 만든다.
쿠키는 30일(86400 * 30) 후에 만료된다. (86400은 1일을 의미)
'/'은 쿠키가 전체 웹사이트에서 사용 가능함을 의미한다.
'isset() 함수'로 쿠키가 설정 됐는지 확인한다.
쿠키가 생성됐다면. 다음과 같은 화면,
생성되지 않았다면 다음과 같은 화면이 나오게 된다.
쿠키 삭제
<?php
//시간을 한 시간 전으로 설정
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "쿠키 'user' 는/은 삭제 되었습니다.";
?>
</body>
</html>
쿠키를 삭제하려면
setcookie()에 만료날짜가 지난 숫자로 설정하면 된다.
위 코드에선 만료 날짜를 한 시간 전으로 수정했기에,
다음과 같은 화면이 나온다.
쿠키 활성 여부
<?php
//쿠키 설정
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
//'$_COOKIE'가 0보다 큰지 확인
if(count($_COOKIE) > 0) {
echo "쿠키가 활성화 되어 있습니다.";
} else {
echo "쿠키가 활성화 되지 않았습니다.";
}
?>
</body>
</html>
위 코드와 같이,
'$_COOKIE' 값이 0보다 큰지 확인하고
0보다 크다면 '쿠키가 활성화 되어 있습니다.'
아니라면 '쿠키가 활성화 되지 않았습니다.' 를 출력한다.
세션 시작, 값 불러오기
세션이란? - 세션은 여러 페이지에서 사용할 정보를 변수에 저장하는 방법이다. 쿠키와 달리 사용자의 컴퓨터에 저장되지 않는다.
[WEB] 쿠키, 세션이란?
웹의 기초중 하나인 쿠키와 세션에 대해 알아봅니다.
chrisjune-13837.medium.com
먼저 'session_1.php' 파일이 있다고 가정해보자.
'session_1.php'파일의 php 코드는 다음과 같다.
<?php
//세션 start
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
//세션 변수 설정, 값 설정
$_SESSION["myname"] = "namgi";
$_SESSION["myage"] = "16";
echo "세션 값이 설정 되었습니다.";
?>
</body>
</html>
'session_start() 함수'는 <html> 태그 앞에 나타나야 한다.
세션은 'session_start() 함수'로 실행된다.
'$_SESSION 변수'에 변수 값을 저장한다.
변수 값이 저장 되었다면 '세션 값이 설정 되었습니다.'를 출력한다.
그 다음 'session_2.php' 파일이 있다.
'session_2.php'파일의 코드는 다음과 같다.
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
//'session_1.php'에서 설정한 값을 불러옴
echo "저의 이름은 '" . $_SESSION["myname"] . "'이고,<br>";
echo "저는 " . $_SESSION["myage"] . "살 입니다.";
?>
</body>
</html>
'session_1.php'에서 설정한 변수 값을 불러오고 출력한다.
결과는 다음과 같다.
세션 제거
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
//모드 세션 변수 제거
session_unset();
//세션 파괴
session_destroy();
?>
</body>
</html>
세션을 제거하거나 파괴하려면 다음 함수를 사용할 수 있다.
session_unset() - 모든 세션 변수를 제거한다.
session_destroy() - 세션을 파괴한다.
이번 회차에선
php 쿠키와 세션에 대해 배웠다.
계속 php에 대해 공부할 것이다.