PHP 세션
세션은 여러 페이지에서 사용할 정보를 변수에 저장하는 방법입니다.
쿠키와 달리 정보는 사용자의 컴퓨터에 저장되지 않습니다.
PHP 세션이란 무엇입니까?
응용 프로그램으로 작업할 때 응용 프로그램을 열고 일부 변경한 다음 닫습니다. 이것은 세션과 매우 유사합니다. 컴퓨터는 당신이 누구인지 알고 있습니다. 응용 프로그램을 시작할 때와 끝낼 때를 알고 있습니다. 그러나 인터넷에는 한 가지 문제가 있습니다. HTTP 주소는 상태를 유지하지 않기 때문에 웹 서버는 귀하가 누구인지 또는 무엇을 하는지 모릅니다.
세션 변수는 여러 페이지에서 사용할 사용자 정보(예: 사용자 이름, 즐겨찾기 색상 등)를 저장하여 이 문제를 해결합니다. 기본적으로 세션 변수는 사용자가 브라우저를 닫을 때까지 지속됩니다.
그래서; 세션 변수는 단일 사용자에 대한 정보를 보유하며 하나의 애플리케이션의 모든 페이지에서 사용할 수 있습니다.
팁: 영구 저장소가 필요한 경우 데이터를 데이터베이스 에 저장할 수 있습니다 .
PHP 세션 시작
함수 로 세션이 시작됩니다 session_start()
.
세션 변수는 PHP 전역 변수 $_SESSION으로 설정됩니다.
이제 "demo_session1.php"라는 새 페이지를 생성해 보겠습니다. 이 페이지에서는 새 PHP 세션을 시작하고 일부 세션 변수를 설정합니다.
예시
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
참고: 함수session_start()
는 문서에서 가장 먼저 표시되어야 합니다. HTML 태그 앞.
PHP 세션 변수 값 가져오기
다음으로 "demo_session2.php"라는 다른 페이지를 만듭니다. 이 페이지에서 첫 페이지("demo_session1.php")에서 설정한 세션 정보에 액세스합니다.
세션 변수는 각각의 새 페이지에 개별적으로 전달되지 않고 대신 각 페이지의 시작 부분에서 여는 세션에서 검색됩니다( session_start()
).
또한 모든 세션 변수 값은 전역 $_SESSION 변수에 저장됩니다.
예시
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
사용자 세션에 대한 모든 세션 변수 값을 표시하는 또 다른 방법은 다음 코드를 실행하는 것입니다.
예시
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
어떻게 작동합니까? 그게 나인지 어떻게 알아?
대부분의 세션은 765487cf34ert8dede5a562e4f3a7e12와 같은 사용자 키를 사용자 컴퓨터에 설정합니다. 그런 다음 세션이 다른 페이지에서 열리면 컴퓨터에서 사용자 키를 검색합니다. 일치하는 항목이 있으면 해당 세션에 액세스하고 일치하지 않으면 새 세션을 시작합니다.
PHP 세션 변수 수정
세션 변수를 변경하려면 덮어쓰기만 하면 됩니다.
예시
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
PHP 세션 파괴
모든 전역 세션 변수를 제거하고 세션을 삭제하려면 다음을 사용 session_unset()
하십시오 session_destroy()
.
예시
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>