세션은 클라이언트가 웹사이트(서버)와 통신하는 보다 안전한 방법입니다. 세션이 열리면 웹 사이트의 모든 페이지에서 세션을 사용(유지)할 수 있으므로 방문자와 웹 사이트 간의 "대화" 메커니즘이 설정됩니다.
세션 변수는 단일 사용자에 대한 정보를 저장하며 애플리케이션의 모든 페이지에서 사용할 수 있습니다.
PHP 세션 변수
컴퓨터에서 애플리케이션 작업을 할 때는 애플리케이션을 열고 변경한 다음 닫습니다. 그것은 대화와 매우 흡사합니다. 컴퓨터는 당신이 누구인지 알고 있습니다. 언제 앱을 열고 닫는지 알 수 있습니다. 그러나 인터넷에서는 문제가 발생합니다. HTTP 주소는 상태를 유지할 수 없기 때문에 웹 서버는 귀하가 누구인지, 무엇을 하는지 전혀 모릅니다.
PHP 세션은 이후 사용을 위해 사용자 정보(예: 사용자 이름, 구매한 항목 등)를 서버에 저장하여 이 문제를 해결합니다. 단, 세션 정보는 일시적이므로 사용자가 사이트를 떠난 후에는 삭제됩니다. 정보를 영구적으로 저장해야 하는 경우 데이터를 데이터베이스에 저장할 수 있습니다.
일반적인 온라인 장바구니는 세션의 대표적인 응용 프로그램입니다. 제품을 예약할 때 선택한 제품을 장바구니에 담으면 실제로 해당 제품에 대한 세션이 열립니다. 선택한 제품에 대해 주문이 접수되면 해당 정보가 데이터베이스에 기록됩니다. 최종적으로 주문이 접수되지 않으면 사용자가 브라우저를 닫거나 로그아웃하면 세션이 닫히고 선택한 제품이 무효화됩니다.
세션은 사용자를 식별하기 위해 세션을 여는 각 방문자에 대해 고유한 세션 ID를 생성합니다. 세션 ID는 사용자 컴퓨터의 쿠키에 저장되거나 URL을 통해 전달될 수 있습니다. 해당 특정 세션 값은 서버 측에 저장되며 이는 쿠키와의 주요 차이점이기도 하며 보안이 상대적으로 높습니다.
PHP 세션 시작
PHP 세션에 사용자 정보를 저장하려면 먼저 세션을 시작해야 합니다.
session_start() 함수를 사용하여 세션을 열면 시스템이 세션 ID를 할당합니다.
참고: session_start() 함수는 <html> 태그 앞에 위치해야 합니다. 🎜>
<?php session_start() ?>
>
위 코드는 사용자의 세션을 서버에 등록합니다. 사용자 정보 저장을 시작하고 사용자 세션에 UID를 할당합니다.
세션 변수 저장
세션 변수를 저장하고 검색하는 올바른 방법은 PHP $_SESSION 변수를 사용하는 것입니다: <?php
session_start();
// 存储 session 数据
$_SESSION['views']=1;
?>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<?php
// 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>
</body>
</html>
출력:
아래 예에서는 간단한 페이지 조회수 카운터를 만듭니다. isset() 함수는 "views" 변수가 설정되었는지 여부를 감지합니다. "views" 변수가 설정된 경우 카운터가 증가합니다. "views"가 없으면 "views" 변수를 생성하고 1로 설정합니다.
<?php session_start(); if(isset($_SESSION['views'])) { $_SESSION['views']=$_SESSION['views']+1; } else { $_SESSION['views']=1; } echo "浏览量:". $_SESSION['views']; ?>
Destroy Session
일부 세션 데이터를 삭제하려면 unset() 또는 session_destroy() 함수를 사용할 수 있습니다.
unset() 함수는 지정된 세션 변수를 해제하는 데 사용됩니다:
<?php session_start(); if(isset($_SESSION['views'])) { unset($_SESSION['views']); } ?>
session_destroy() 함수를 호출하여 세션을 완전히 삭제할 수도 있습니다:
<?php session_destroy(); ?>
참고 : session_destroy() 세션이 재설정되고 저장된 모든 세션 데이터가 손실됩니다.
session_id
Session은 각 사용자의 세션을 추적하는 데 사용되며, 사용자를 구별하기 위해 서버에서 생성한 SessionID로 식별됩니다. Session은 서버의 메모리에 저장되고, SessionID는 서버의 메모리와 클라이언트의 Cookie에 저장됩니다. 이와 같이 사용자가 요청하면 서버는 사용자의 쿠키에 기록된 SessionID와 서버 메모리의 SessionID를 비교하여 사용자에게 해당하는 Session을 찾아 운용하게 된다. 따라서 클라이언트가 쿠키를 비활성화하면 세션을 사용할 수 없습니다.