쿠키 헬퍼
쿠키 헬퍼 파일에는 쿠키 작업을 지원하는 함수들이 포함되어 있습니다.
헬퍼 로드
이 헬퍼는 다음 코드를 사용하여 로드합니다:
<?php
helper('cookie');
사용 가능한 함수
다음 함수들을 사용할 수 있습니다:
- set_cookie($name[, $value = ''[, $expire = 0[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = false[, $httpOnly = false[, $sameSite = '']]]]]]]])
- 매개변수:
$name (
array|Cookie|string) – 쿠키 이름 또는 이 함수에 사용 가능한 모든 매개변수의 연관 배열 또는CodeIgniter\Cookie\Cookie의 인스턴스$value (
string) – 쿠키 값$expire (
int) – 만료까지의 초 수.0으로 설정하면 브라우저가 열려 있는 동안만 쿠키가 유지됩니다$domain (
string) – 쿠키 도메인 (일반적으로: .yourdomain.com)$path (
string) – 쿠키 경로$prefix (
string) – 쿠키 이름 접두사.''이면 app/Config/Cookie.php의 기본값이 사용됩니다$secure (
bool) – HTTPS를 통해서만 쿠키를 전송할지 여부.null이면 app/Config/Cookie.php의 기본값이 사용됩니다$httpOnly (
bool) – JavaScript에서 쿠키를 숨길지 여부.null이면 app/Config/Cookie.php의 기본값이 사용됩니다$sameSite (
string) – SameSite 쿠키 매개변수의 값.null이면 app/Config/Cookie.php의 기본값이 사용됩니다
- 반환 형식:
void
참고
v4.2.7 이전에는 버그로 인해
$secure와$httpOnly의 기본값이false였으며, app/Config/Cookie.php의 값은 사용되지 않았습니다.이 헬퍼 함수는 브라우저 쿠키를 설정하는 더 편리한 문법을 제공합니다. 이 함수는
CodeIgniter\HTTP\Response::setCookie()의 별칭이므로 사용 방법은 Response 라이브러리를 참고하세요.참고
이 헬퍼 함수는
Services::response()가 반환하는 전역 응답 인스턴스에 브라우저 쿠키를 설정합니다. 따라서 다른 응답 인스턴스를 생성하여 반환하는 경우(예:redirect()호출 시) 여기서 설정한 쿠키는 자동으로 전송되지 않습니다.
- get_cookie($index[, $xssClean = false[, $prefix = '']])
- 매개변수:
$index (
string) – 쿠키 이름$xssClean (
bool) – 반환된 값에 XSS 필터링을 적용할지 여부$prefix (
string|null) – 쿠키 이름 접두사.''로 설정하면 app/Config/Cookie.php의 기본값이 사용됩니다.null로 설정하면 접두사를 사용하지 않습니다
- 반환:
쿠키 값, 찾을 수 없으면 null
- 반환 형식:
mixed
참고
v4.2.1부터 세 번째 매개변수
$prefix가 도입되었으며, 버그 수정으로 인해 동작이 일부 변경되었습니다. 자세한 내용은 업그레이드를 참고하세요.이 헬퍼 함수는 브라우저 쿠키를 가져오는 더 편리한 문법을 제공합니다. 이 함수는
CodeIgniter\HTTP\IncomingRequest::getCookie()와 매우 유사하게 동작하지만, app/Config/Cookie.php 파일에 설정한Config\Cookie::$prefix도 함께 앞에 붙입니다. 자세한 사용법은 IncomingRequest 라이브러리를 참고하세요.경고
XSS 필터링 사용은 좋지 않은 방식입니다. XSS 공격을 완벽하게 막을 수 없습니다. 뷰에서 적절한
$context와 함께esc()를 사용하는 것을 권장합니다.
- delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]])
- 매개변수:
$name (
string) – 쿠키 이름$domain (
string) – 쿠키 도메인 (일반적으로: .yourdomain.com)$path (
string) – 쿠키 경로$prefix (
string) – 쿠키 이름 접두사
- 반환 형식:
void
쿠키를 삭제합니다. 사용자 지정 경로나 다른 값을 설정하지 않은 경우 쿠키 이름만 필요합니다.
<?php delete_cookie('name');
이 함수는
value와expire매개변수가 없다는 점을 제외하면set_cookie()와 동일합니다.이 함수도
Services::response()가 반환하는 전역 응답 인스턴스에 쿠키 삭제를 위한 브라우저 쿠키를 설정합니다.참고
set_cookie()를 사용할 때value를 빈 문자열로 설정하고expire를0으로 설정하면 쿠키가 삭제됩니다.value를 빈 문자열이 아닌 값으로 설정하고expire를0으로 설정하면 브라우저가 열려 있는 동안만 쿠키가 유지됩니다.첫 번째 매개변수에 값 배열을 전달하거나 개별 매개변수를 설정할 수 있습니다.
<?php delete_cookie($name, $domain, $path, $prefix);
- has_cookie(string $name[, ?string $value = null[, string $prefix = '']])
- 매개변수:
$name (
string) – 쿠키 이름$value (
string|null) – 쿠키 값$prefix (
string) – 쿠키 접두사
- 반환 형식:
bool
Services::response()가 반환하는 전역 응답 인스턴스에 지정된 이름의 쿠키가 존재하는지 확인합니다. 이 함수는CodeIgniter\HTTP\Response::hasCookie()의 별칭입니다.