>  기사  >  백엔드 개발  >  쿠키 및 사용자 세션 사용

쿠키 및 사용자 세션 사용

WBOY
WBOY원래의
2016-08-08 09:29:15897검색

쿠키 ​​및 사용자 세션 사용

쿠키

쿠키는 사용자에 대한 일부 작은 정보를 저장합니다. 서버나 스크립트의 요청에 해당합니다. 호스트는 사용자의 브라우저를 통해 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에 다시 할당될 때까지 전역 설정에 반영되지 않습니다. .

  • 쿠키 및 사용자 세션 사용
  • 크기: 130.8KB
  • 쿠키 및 사용자 세션 사용
  • 크기: 129.8KB
  • 쿠키 및 사용자 세션 사용
  • 크기: 22.1KB
  • 이미지 첨부 보기

위 내용은 콘텐츠 측면을 포함해 쿠키의 사용과 사용자 세션을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.