PHP 세션

PHP 세션 변수는 사용자 세션에 대한 정보를 저장하거나 사용자 세션 설정을 변경하는 데 사용됩니다. 세션 변수가 저장하는 정보는 단일 사용자의 것이며, 애플리케이션의 모든 페이지에서 사용할 수 있습니다.

PHP 세션 변수

애플리케이션을 실행할 때, 그것을 열고 변경을 하고 그것을 닫습니다. 이는 한 번의 세션이다. 컴퓨터는 누구인지 알고 있으며, 애플리케이션을 언제 시작했는지와 언제 종료했는지를 알고 있습니다. 그러나 인터넷에서는 문제가 발생합니다: 서버는 누구인지와 무엇을 하는지를 알 수 없으며, 이는 HTTP 주소가 상태를 유지할 수 없기 때문입니다.

PHP 세션이 사용자 정보를 저장하여 이후 사용할 수 있도록 해결합니다 (예: 사용자 이름, 구매 상품 등). 그러나 세션 정보는 일시적인 것이며, 사용자가 웹사이트를 떠나면 제거됩니다. 영구적으로 정보를 저장하려면 데이터를 데이터베이스에 저장할 수 있습니다.

세션의 작동 방식은 각 방문자에게 독특한 id (UID)를 생성하고 이 UID를 기반으로 변수를 저장하는 것입니다. UID는 쿠키에 저장되거나 URL을 통해 전달됩니다.

PHP 세션 시작

사용자 정보를 PHP 세션에 저장하기 전에 먼저 세션을 시작해야 합니다.

주석:session_start() 함수는 <html> 태그 앞에 위치해야 합니다:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

위의 코드는 서버에 사용자의 세션을 등록하여 사용자 정보를 저장하고 시작할 수 있도록 하며, 사용자 세션이 UID를 할당받습니다.

Session 변수 저장

정확하게 session 변수를 저장하고 가져오는 방법은 PHP $_SESSION 변수를 사용하는 것입니다:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

출력:

Pageviews=1

아래의 예제에서, 우리는 간단한 page-view 카운터를 생성했습니다. isset() 함수는 "views" 변수가 설정되었는지 확인합니다. "views" 변수가 설정되어 있다면, 카운터를 누적합니다. "views"가 존재하지 않으면, "views" 변수를 생성하고 1로 설정합니다:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

Session 종료

어떤 session 데이터를 제거하려면 unset() 또는 session_destroy() 함수를 사용할 수 있습니다.

unset() 함수는 지정된 session 변수를 해제하는 데 사용됩니다:

<?php
unset($_SESSION['views']);
?>

또한 session_destroy() 함수를 통해 session을 완전히 종료할 수 있습니다:

<?php
session_destroy();
?>

주석:session_destroy()은 session을 재설정하며, 모든 저장된 session 데이터를 잃게 됩니다.