백엔드 개발 PHP 문제 PHP 세션 기술에는 주로 무엇이 포함되나요?

PHP 세션 기술에는 주로 무엇이 포함되나요?

Sep 24, 2019 pm 04:22 PM
cookie session

PHP 세션 기술에는 주로 무엇이 포함되나요?

이 글에서는 주로 PHP 대화 메커니즘 쿠키와 세션에 대해 설명합니다.

쿠키 소개

쿠키는 고객의 브라우저에 저장되는 데이터로, 사용자 데이터를 추적하고 저장하는 데 사용됩니다. 일반적으로 쿠키는 HTTP 헤더를 통해 서버에서 클라이언트로 반환됩니다. 대부분의 웹 프로그램은 쿠키의 동작을 지원하는데, 쿠키는 HTTP 헤더에 존재하기 때문에 헤더 기능의 사용 제한과 유사하게 다른 정보를 출력하기 전에 쿠키를 설정해야 합니다.

PHP는 setcookie 함수를 사용하여 브라우저에서 다시 전송된 모든 쿠키는 PHP에 의해 $_COOKIE의 전역 변수에 자동으로 저장되므로 $_COOKIE['key'] 형식을 사용할 수 있습니다. .

PHP의 쿠키는 매우 널리 사용되며 사용자의 로그인 정보, 장바구니 등을 저장하는 데 자주 사용됩니다. 세션을 사용할 때 쿠키는 일반적으로 사용자를 식별하기 위해 세션 ID를 저장하는 데 사용됩니다. 유효 기간이 만료되면 쿠키는 클라이언트에서 자동으로 삭제됩니다. 동시에 쿠키는 보안 제어를 위해 도메인과 경로를 설정할 수도 있습니다. 이에 대해서는 이후 장에서 자세히 설명하겠습니다.

웹사이트 보안을 위해 이 사이트는 당분간 쿠키 변수 표시 기능을 제공하지 않습니다. 로컬에서 테스트해 보세요.

쿠키 설정

PHP에서 쿠키를 설정하는 가장 일반적인 방법은 다음과 같습니다. setcookie 함수에는 7가지 옵션이 있습니다. 매개변수 선택, 일반적으로 처음 5개를 사용합니다.

name(쿠키 이름)은 $_COOKIE['name']을 통해 액세스할 수 있습니다.

value(쿠키 값)

expire(만료 시간) Unix 타임스탬프 형식, 기본값은 0이므로 브라우저를 닫으면 유효하지 않습니다

경로(유효 경로) 경로를 '/'로 설정하면 웹사이트 전체가 유효

도메인(유효 도메인) 기본적으로 , 'www.imooc이 .com으로 설정되어 있으면' 전체 도메인 이름이 유효합니다. www 하위 도메인에서만 유효합니다

$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  //有效期一小时
setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //设置路径与域
로그인 후 복사

PHP에서 쿠키를 설정하는 setrawcookie 함수도 setcookie와 동일합니다. 유일한 차이점은 값이 자동으로 Urlencode되지 않으므로 필요한 경우 Urlencode를 수동으로 수행해야 한다는 것입니다.

setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);
로그인 후 복사

쿠키는 HTTP 헤더를 통해 설정되기 때문에 헤더 방식을 사용하여 직접 설정할 수도 있습니다.

header("Set-Cookie:cookie_name=value");
로그인 후 복사

쿠키 삭제 및 만료 시간

이전 장을 통해 쿠키 설정 기능에 대해 배웠지만 PHP에서는 쿠키 삭제 기능이 없다는 사실을 발견했습니다. PHP에서 쿠키 삭제도 setcookie를 사용하여 구현됩니다. 기능.

setcookie('test', '', time()-1);
로그인 후 복사

쿠키의 만료 시간을 현재 시간 이전으로 설정하면 쿠키가 자동으로 만료되어 쿠키 삭제 목적이 달성되는 것을 볼 수 있습니다. 이러한 설계의 이유는 쿠키가 HTTP 헤더를 통해 전달되기 때문입니다. 클라이언트는 서버에서 반환된 Set-Cookie 세그먼트를 기반으로 쿠키를 설정합니다. 쿠키를 삭제하려면 새로운 Del-Cookie를 사용해야 합니다. 실제로, 쿠키의 설정, 업데이트, 삭제는 Set-Cookie를 통해 간단하고 명확하게 이루어질 수 있습니다.

원칙을 이해한 후 헤더를 통해 직접 쿠키를 삭제할 수도 있습니다.

header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));
로그인 후 복사

gmdate는 여기서 시차의 영향을 제거하기 위해 그리니치 표준시를 생성하는 데 사용됩니다.

세션과 쿠키의 유사점과 차이점

쿠키는 클라이언트에 데이터를 저장하고 사용자와 서버 간의 연결을 설정하지만 일반적으로 많은 문제를 해결할 수 있지만 쿠키에는 여전히 몇 가지 제한 사항이 있습니다.

쿠키는 상대적으로 그렇지 않습니다. 매우 안전합니다. 도난당하거나 쿠키 스푸핑으로 이어질 수 있습니다.

단일 쿠키의 값은 최대 4k까지만 저장할 수 있습니다.

모든 요청에는 네트워크 전송이 필요하며, 이는 대역폭을 차지합니다

세션은 사용자의 세션 데이터를 저장하기 위한 것입니다. 서버 측에서는 크기 제한 없이 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']; //提示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(); 
var_dump($_SESSION); //此时已为空
로그인 후 복사

如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。

使用session来存储用户的登录信息

session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等。

用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储。

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;
로그인 후 복사

一般来说,登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高。

위 내용은 PHP 세션 기술에는 주로 무엇이 포함되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

쿠키는 어디에 저장되나요? 쿠키는 어디에 저장되나요? Dec 20, 2023 pm 03:07 PM

쿠키는 일반적으로 브라우저의 쿠키 폴더에 저장되며, 브라우저의 쿠키 파일은 일반적으로 바이너리 또는 SQLite 형식으로 저장됩니다. 쿠키 파일을 직접 열면 일부 왜곡되거나 읽을 수 없는 내용이 나타날 수 있으므로 사용하는 것이 가장 좋습니다. 쿠키를 보고 관리하기 위해 귀하의 브라우저에서 제공하는 쿠키 관리 인터페이스.

컴퓨터의 쿠키는 어디에 있습니까? 컴퓨터의 쿠키는 어디에 있습니까? Dec 22, 2023 pm 03:46 PM

컴퓨터의 쿠키는 사용된 브라우저 및 운영 체제에 따라 브라우저의 특정 위치에 저장됩니다. 1. Google Chrome, C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default\Cookies에 저장됨 등.

세션 실패를 해결하는 방법 세션 실패를 해결하는 방법 Oct 18, 2023 pm 05:19 PM

세션 실패는 일반적으로 세션 수명 만료 또는 서버 종료로 인해 발생합니다. 해결 방법은 다음과 같습니다. 1. 세션 수명을 연장합니다. 3. 쿠키를 사용합니다. 4. 세션 관리 미들웨어를 사용합니다.

PHP 세션 교차 도메인 문제에 대한 솔루션 PHP 세션 교차 도메인 문제에 대한 솔루션 Oct 12, 2023 pm 03:00 PM

PHPSession의 도메인 간 문제 해결 프런트엔드와 백엔드 분리 개발에서 도메인 간 요청이 표준이 되었습니다. 도메인 간 문제를 처리할 때 일반적으로 세션 사용 및 관리가 포함됩니다. 그러나 브라우저 원본 정책 제한으로 인해 기본적으로 도메인 간에 세션을 공유할 수 없습니다. 이 문제를 해결하려면 도메인 간 세션 공유를 달성하기 위한 몇 가지 기술과 방법을 사용해야 합니다. 1. 도메인 간 세션을 공유하기 위한 쿠키의 가장 일반적인 사용

모바일 쿠키는 어디에 있나요? 모바일 쿠키는 어디에 있나요? Dec 22, 2023 pm 03:40 PM

휴대폰의 쿠키는 모바일 장치의 브라우저 애플리케이션에 저장됩니다. 1. iOS 장치의 경우 쿠키는 Safari 브라우저의 설정 -> Safari -> 고급 -> 웹사이트 데이터에 저장됩니다. 2. Android 장치의 경우 쿠키가 저장됩니다. 설정 -> 사이트 설정 -> 크롬 브라우저의 쿠키 등에서

JavaScript와 PHP 쿠키의 차이점은 무엇입니까? JavaScript와 PHP 쿠키의 차이점은 무엇입니까? Sep 02, 2023 pm 12:29 PM

JavaScript쿠키 JavaScript 쿠키를 사용하는 것은 선호도, 구매, 커미션 및 기타 정보를 기억하고 추적하는 가장 효과적인 방법입니다. 더 나은 방문자 경험이나 웹사이트 통계를 위해 필요한 정보입니다. PHPCookieCookies는 클라이언트 컴퓨터에 저장되고 추적 목적으로 보관되는 텍스트 파일입니다. PHP는 HTTP 쿠키를 투명하게 지원합니다. JavaScript 쿠키는 어떻게 작동하나요? 귀하의 서버는 쿠키 형태로 방문자의 브라우저에 일부 데이터를 보냅니다. 브라우저는 쿠키를 허용할 수 있습니다. 존재하는 경우 방문자의 하드 드라이브에 일반 텍스트 기록으로 저장됩니다. 이제 방문자가 사이트의 다른 페이지에 도달하면

쿠키 작동 방식 쿠키 작동 방식 Sep 20, 2023 pm 05:57 PM

쿠키의 작동 원리에는 쿠키를 보내는 서버, 쿠키를 저장하는 브라우저, 쿠키를 처리하고 저장하는 브라우저가 포함됩니다. 자세한 소개: 1. 서버는 쿠키를 보내고, 서버는 쿠키가 포함된 HTTP 응답 헤더를 브라우저에 보냅니다. 2. 브라우저는 쿠키 등을 저장합니다.

브라우저 쿠키가 저장되는 위치에 대한 자세한 설명 브라우저 쿠키가 저장되는 위치에 대한 자세한 설명 Jan 19, 2024 am 09:15 AM

인터넷의 대중화로 인해 우리는 브라우저를 사용하여 인터넷 서핑을 하는 것이 생활 방식이 되었습니다. 브라우저를 일상적으로 사용하다 보면 온라인 쇼핑, 소셜 네트워킹, 이메일 등 계정 비밀번호를 입력해야 하는 상황에 자주 직면하게 됩니다. 이 정보는 다음에 방문할 때 다시 입력할 필요가 없도록 브라우저에 기록되어야 합니다. 이때 쿠키가 유용합니다. 쿠키란 무엇입니까? 쿠키는 서버가 사용자의 브라우저에 전송하고 로컬에 저장되는 작은 데이터 파일을 말하며 일부 웹사이트의 사용자 행동을 포함합니다.

See all articles