쿠키 및 사용자 세션 사용
쿠키
쿠키는 사용자에 대한 일부 작은 정보를 저장합니다. 서버나 스크립트의 요청에 해당합니다. 호스트는 사용자의 브라우저를 통해 20개의 쿠키 저장을 요청할 수 있습니다. 각 쿠키에는 이름, 값, 만료 날짜는 물론 호스트 및 경로 정보가 포함됩니다. 단일 쿠키의 크기 제한은 4kb입니다. 쿠키를 설정한 후에는 요청을 하는 호스트만 데이터를 읽을 수 있으므로 사용자 개인 정보가 존중됩니다. 또한 사용자는 모든 쿠키 요청을 수락하거나 거부하도록 알리도록 브라우저를 구성할 수 있습니다.
쿠키를 설정하는 PHP 스크립트에서 보낸 헤더의 Set-Cookie 항목은 다음과 같을 수 있습니다.
Set-Cookie:vegetable=artichoke;path=/;domain=yourdomain. com
Set-Cookie 헤더에는
이름/값 쌍(vegetable=artichoke),
경로(path=/) 및 도메인(domain=yourdomain)이 포함됩니다. .com).
만료 필드가 설정된 경우 브라우저가 쿠키를 "잊은" 날짜 값을 제공합니다. 만료 날짜가 설정되지 않은 경우 쿠키는 사용자 세션이 만료될 때, 즉 사용자가 브라우저를 닫을 때 만료됩니다.
경로는 도메인이 발견된 디렉터리이고 쿠키는 서버의 이 디렉터리 아래 디렉터리로 다시 전송되어야 하기 때문에 경로 필드와 도메인 필드는 함께 작동합니다. 경로가 매우 일반적인 값인 "/"이면 문서 루트에 있는 모든 파일에서 쿠키를 읽을 수 있다는 의미입니다.
경로가 "/products"인 경우, 이 쿠키는 웹사이트의 /products 디렉터리에 있는 파일에서만 읽을 수 있습니다.
이후에 PHP 스크립트는 쿠키에 액세스할 수 있으며 쿠키는 환경 변수 HTTP_COOKIE에 있거나 $_COOKIE 슈퍼 전역 변수의 일부로 다음 세 가지 방법으로 액세스할 수 있습니다.
echo $_SERVER["HTTP_COOKIE"]; echo getenv("HTTP_COOKIE"); echo $_COOKIE["vegetable"];
쿠키 설정
<?php /** *setcookie()函数输出一个Set-Cookie标头。它应该在任何其他内容发送给浏览器之前调用。 *参数:cookie名字、cookie值、过期日期、路径、域、一个整数 *如果cookie仅通过一个安全的连接发送的话,这个整数的值设为1。0表示在一个非安全的环境中发送。 */ setcookie("vegetable","artichoke",time()+3600,"/","localhost",0); if (isset($_COOKIE["vegetable"])){ echo "<p>Hello again,you hava chosen:".$_COOKIE["vegetable"].".</p>"; }else { echo "<p>Hello you.This may be your first visit.</p>"; } ?>
쿠키를 안전하게 삭제하는 방법도 setcookie() 함수를 호출하며, time()-60과 같은 특정 만료 시간만 사용해야 합니다.
사용자 세션
세션 기능은 사용자에게 해당 식별자에 연결된 정보를 저장하고 검색하는 데 사용할 수 있는 고유 식별자를 제공합니다. 방문자가 세션 지원 페이지에 액세스하면 새 식별자가 할당되거나 사용자가 이전 방문에서 이미 설정된 식별자와 다시 연결됩니다. 이미 세션과 연결된 모든 변수는 $_SESSION 슈퍼전역 변수를 통해 코드에서 사용할 수 있습니다. session_set_save_handler()라는 함수를 사용하여 데이터베이스 저장소를 구현할 수 있지만 세션 상태는 일반적으로 임시 파일에 저장됩니다.
세션을 시작하고 ID를 반환하고 변수를 session1.php로 저장합니다.
<?php session_start(); echo "<p>Your session ID is ".session_id().".</p>"; $_SESSION["product1"] = "Sonic Screwdriver"; $_SESSION["product2"] = "HAL 2000"; echo "The products have been registered."; ?>
저장된 세션 변수에 접근하려면 session_save_path() 함수를 사용하여 시스템 내 임시 파일이 어디에 저장되어 있는지 확인하고 sesson2.php로 저장하면 됩니다.
<?php session_start(); echo "Your chosen products are:"; echo "<ul>"; echo "<li>".$_SESSION["product1"]."</li>"; echo "<li>".$_SESSION["product2"]."</li>"; echo "</ul>"; echo session_save_path(); ?>
먼저 서버에서 session1.php에 접속한 결과는 다음과 같습니다.
그런 다음 서버에서 session2.php에 접속한 결과
이 경로에서 sess_curdcq4agn11gq4fdj4bq2kj33을 찾아 메모장으로 열어보면 등록된 변수들이 어떻게 저장되어 있는지 확인할 수 있습니다.
$_SESSION 슈퍼전역 변수에 값이 배치되면 PHP는 변수 이름과 값을 파일에 씁니다. 이 정보는 읽을 수 있으며 나중에 변수를 복원할 수 있습니다. 이 변수를 슈퍼 전역 변수 $_SESSION에 추가한 후에도 스크립트 실행 중 언제든지 해당 값을 수정할 수 있습니다. 그러나 이 수정된 값은 변수가 $_SESSION에 다시 할당될 때까지 전역 설정에 반영되지 않습니다. .
위 내용은 콘텐츠 측면을 포함해 쿠키의 사용과 사용자 세션을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.