>  기사  >  백엔드 개발  >  PHP의 쿠키와 세션

PHP의 쿠키와 세션

怪我咯
怪我咯원래의
2017-01-16 11:01:562004검색

PHP에는 매우 중요한 두 가지 기능인 쿠키와 세션이 있는데 어떻게 사용되며 차이점은 무엇인가요?

쿠키와 세션에 대해 알아보겠습니다

쿠키 소개

쿠키는 클라이언트 브라우저에 저장되는 데이터로, 사용자 데이터를 추적하고 저장하는 데 사용됩니다. . 일반적으로 쿠키는 HTTP 헤더를 통해 서버에서 클라이언트로 반환됩니다. 대부분의 웹 프로그램은 쿠키 연산을 지원합니다.

쿠키는 HTTP 헤더에 존재하므로 헤더 기능의 사용 제한과 마찬가지로 다른 정보가 출력되기 전에 설정해야 합니다.

쿠키 방법 설정

setcookie("name",'zhangsan');

setcookie("name",'zhangsan',time()+60);/ /쿠키 유효 시간을 60초로 설정

//setcookie("visittime",date("y-m-d H:i:s"),time()+60);//쿠키를 저장하는 변수를 설정합니다. 쿠키 만료 시간

쿠키 방법 읽기

$name=$_COOKIE["name"};

쿠키 방법 삭제

setcookie("name", "" ,time()-1);//cookie() 시간을 현재 시간에서 1을 뺀 값으로 설정합니다. time() 함수는 만료 시간에서 1초를 빼면 현재 타임스탬프를 반환합니다. , 따라서 쿠키 삭제

cookiesz를 삭제하려면 setcookie() 함수의 두 번째 매개변수를 null 값으로 설정하고 세 번째 매개변수 쿠키의 만료 시간을 현재보다 짧게 설정하면 됩니다. 시스템 시간

PHP의 쿠키와 세션

쿠키를 이해한 후 세션을 살펴보겠습니다

세션은 사용자의 세션 데이터를 아무런 데이터 없이 서버에 저장합니다. 크기 제한은 사용자 식별을 위해 session_id를 사용합니다. 기본적으로 PHP 세션 ID는 쿠키를 통해 저장되므로 seesion은 어느 정도 쿠키에 의존합니다. 그러나 이것이 절대적인 것은 아닙니다. 세션 ID는 식별을 위해 서버에 전달될 수 있는 한 매개변수를 통해 구현될 수도 있습니다.

세션 사용

PHP에서 세션을 사용하는 방법은 매우 간단합니다. 먼저 session_start 메서드를 실행하여 세션을 연 다음 전역 변수 $_SESSION을 통해 세션을 읽고 씁니다.

session_start();$_SESSION['test'] = time();var_dump($_SESSION);

session은 설정할 값을 자동으로 인코딩 및 디코딩하므로 세션이 지원할 수 있습니다. 데이터 및 객체를 포함한 모든 데이터 유형.

session_start();$_SESSION['ary'] = array('name' => 'jobs');$_SESSION['obj'] = new stdClass();var_dump($_SESSION);

기본적으로 세션은 파일 형태로 서버에 저장되므로, 페이지에서 세션이 열리면 해당 세션 파일이 독점적으로 점유됩니다. 이로 인해 현재 사용자의 다른 동시 접근이 발생하게 됩니다. 실행하고 기다릴 수 없습니다. 이 문제는 캐시 또는 데이터베이스 저장소를 사용하여 해결할 수 있으며 이에 대해서는 일부 고급 과정에서 설명하겠습니다.

세션 삭제 및 삭제

세션 값을 삭제하려면 PHP의 unset 함수를 사용하면 됩니다. 삭제 후에는 전역 변수 $_SESSION에서 제거되며 액세스할 수 없습니다.

session_start();$_SESSION['name'] = 'jobs';unset($_SESSION['name']);echo $_SESSION['name'] //프롬프트 이름이 존재하지 않습니다

모든 세션을 삭제하려면 session_destroy 함수를 사용하여 현재 세션을 삭제할 수 있습니다. session_destroy는 모든 데이터를 삭제하지만 session_id는 여전히 존재합니다.

session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();session_destroy();

session_destroy에 주목할 가치가 있습니다. $_SESSION 전역 변수의 값은 즉시 소멸되지 않으며 다음에 접근할 때만 $_SESSION이 비어 있으므로 $_SESSION을 즉시 소멸시켜야 하는 경우 unset 함수를 사용할 수 있습니다.

session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();unset($_SESSION);session_destroy(); //현재는 비어 있습니다

일반적으로 사용자가 로그아웃할 때 사용되는 쿠키의 session_id를 동시에 파기해야 하는 경우 setcookie 메소드를 명시적으로 호출하여 session_id의 쿠키 값을 삭제합니다.

세션을 사용하여 사용자 로그인 정보 저장

세션은 다양한 유형의 데이터를 저장하는 데 사용될 수 있으므로 사용자 로그인 정보, 장바구니 데이터, 또는 임시 사용을 위한 일부 임시 데이터 등

사용자가 성공적으로 로그인한 후 사용자 정보는 일반적으로 세션에 저장될 수 있습니다. 일반적으로 일부 중요한 필드는 별도로 저장되며 모든 사용자 정보는 독립적으로 저장됩니다.

$_SESSION['uid'] = $userinfo['uid'];$_SESSION['userinfo'] = $userinfo;

일반적으로 로그인 정보는 sessioin에 저장할 수 있습니다. 또는 쿠키에 저장될 수 있습니다. 차이점은 세션이 여러 데이터 유형에 쉽게 액세스할 수 있는 반면, 쿠키는 보안이 더 높은 일부 데이터의 경우 쿠키를 형식화하고 암호화하여 저장해야 한다는 것입니다. 서버 측의 세션 저장소가 더 안전합니다.

header("content-type:text/html; charset=utf-8");

session_start();//사용자가 성공적으로 로그인하여 다음 사용자 데이터를 얻었다고 가정합니다. $userinfo = array(

'uid' => 100,

'name' => 'liu',

'email' => '123456789@qq.com',

'sex' => 'man',

'age' => '23');

/* 세션에 사용자 정보 저장*/

$_SESSION['uid'] = $userinfo['uid'];

$_SESSION['name'] = $userinfo['name'];

$_SESSION ['userinfo '] = $userinfo;

//* 사용자 데이터를 쿠키에 저장하는 간단한 방법*/

$secureKey = 'php';

//암호화 키 $ str = serialize($userinfo);

//사용자 정보 직렬화 //사용자 정보를 암호화하기 전

$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5( $secureKey), $str, MCRYPT_MODE_ECB ));

//사용자 정보가 암호화된 후//암호화된 사용자 데이터를 쿠키에 저장

setcookie('userinfo', $str) ;

?>

PHP의 쿠키와 세션

마지막으로 세션과 쿠키의 가장 큰 차이점을 살펴보겠습니다.

먼저 세션은 세션 정보가 서버에 저장되고, 클라이언트의 정보는 세션 ID를 통해 전송됩니다. 동시에 서버는 세션 ID를 수신한 후 이 ID를 기반으로 관련 세션 정보 자원을 제공합니다.

둘째, 쿠키는 모든 정보를 양식과 결합합니다. 의 텍스트는 클라이언트에 저장되고 브라우저에서 관리 및 유지됩니다

셋째, 세션은 서버에 저장되므로 모든 원격 사용자는 세션 파일과 쿠키의 내용을 수정할 수 없습니다

클라이언트용입니다. 최종 저장, 모든 세션은 쿠키보다 훨씬 안전하며, 물론 쉬운 제어, 고객 정의 저장 등 많은 장점이 있습니다. (데이터베이스에 저장됨)...


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