> 백엔드 개발 > PHP 튜토리얼 > CakePHP 쿠키 관리

CakePHP 쿠키 관리

WBOY
풀어 주다: 2024-09-10 17:26:47
원래의
878명이 탐색했습니다.

CakePHP로 쿠키를 처리하는 것은 쉽고 안전합니다. 쿠키를 관리하는 데 사용되는 CakePHP 쿠키 관리Component 클래스가 있습니다. 이 클래스는 쿠키 작업을 위한 여러 가지 방법을 제공합니다.

쿠키 작업을 하려면 컨트롤러에 이 두 클래스를 추가하세요. −

use Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리;
use Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리Collection;
로그인 후 복사

쿠키를 등록하려면 먼저 쿠키 객체를 생성해야 합니다.

$cookie = new CakePHP 쿠키 관리(name,value,expiration time,path,domain);
로그인 후 복사
로그인 후 복사

이름과 값은 필수이고 나머지는 선택 매개변수입니다.

쿠키 쓰기

다음은 쿠키를 작성하는 구문입니다.

$cookie = new CakePHP 쿠키 관리(name,value,expiration time,path,domain);
로그인 후 복사
로그인 후 복사

생성된 쿠키는 아래와 같이 cookieCollection에 추가되어야 합니다 −

$cookie = new CakePHP 쿠키 관리('name','XYZ');
$cookies = new CakePHP 쿠키 관리Collection([$cookie]);
로그인 후 복사

쿠키 수집 개체가 이미 생성된 경우 나머지 쿠키는 아래와 같이 추가할 수 있습니다. −

$cookies = $cookies->add($cookie);
로그인 후 복사

쿠키 읽기

쿠키를 읽으려면 cookiecollection의 get() 메소드를 사용하세요.

구문

읽기 쿠키의 구문은 다음과 같습니다. −

Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리Collection::get($name)
로그인 후 복사

이렇게 하면 쿠키 컬렉션 인터페이스가 반환됩니다. 쿠키 값을 얻으려면 getValue() 메서드를 호출해야 합니다.

Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리Collection Interface::getValue()
로그인 후 복사

쿠키 확인

cookieCollection의 has() 메소드는 쿠키가 있는지 여부를 알려줍니다.

Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리Collection::has($name)
로그인 후 복사

echo $isPresent = $this->cookies->has('name');
로그인 후 복사

쿠키 삭제

쿠키를 삭제하려면 remove() 메소드를 사용합니다. 다음은 Remove() 메소드의 구문입니다.

Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리Collection::remove($name)
로그인 후 복사

remove() 메소드는 삭제할 쿠키 변수 이름($name)이라는 하나의 인수를 사용합니다.

예시 1

$test = $this->cookies->remove('name');
로그인 후 복사

예시 2

다음 프로그램과 같이 config/routes.php 파일을 변경합니다.

config/routes.php

<?php use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('cookie/testcookies',['controller'=>'CakePHP 쿠키 관리s','action'=>'testCakePHP 쿠키 관리s']);
   $builder->fallbacks();
});
로그인 후 복사

src/Controller/CakePHP 쿠키 관리sController.php에서 CakePHP 쿠키 관리sController.php 파일을 생성합니다. 컨트롤러 파일에 다음 코드를 복사합니다.

src/Controller/CakePHP 쿠키 관리s/CakePHP 쿠키 관리sController.php

<?php namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리;
   use Cake\Http\CakePHP 쿠키 관리\CakePHP 쿠키 관리Collection;
   class CakePHP 쿠키 관리sController extends AppController{
      public $cookies;
      public function testCakePHP 쿠키 관리s() {
         $cookie = new CakePHP 쿠키 관리('name','XYZ');
         $this->cookies = new CakePHP 쿠키 관리Collection([$cookie]);
         $cookie_val = $this->cookies->get('name');
         $this->set('cookie_val',$cookie_val->getValue());
         $isPresent = $this->cookies->has('name');
         $this->set('isPresent',$isPresent);
         $this->set('count', $this->cookies->count());
         $test = $this->cookies->remove('name');
         $this->set('count_afterdelete', $test->count());
      }
   }
?>
로그인 후 복사

src/TemplateCakePHP 쿠키 관리s 디렉토리를 생성하고 해당 디렉토리 아래에 test_cookies.php라는 View 파일을 생성합니다. 해당 파일의 다음 코드를 참조하세요.

src/템플릿/쿠키/test_cookies.php

The value of the cookie is: <?php echo $cookie_val; ?>

<br>
<?php if($isPresent):
?>
The cookie is present.
<?php else:
?>
The cookie isn't present.
<?php endif;
?>
<br>
<?php echo "The count of cookie before delete is :" .$count;
?>
<br>
<?php echo "The count of cookie after delete is :" .$count_afterdelete;
?>
로그인 후 복사

출력

다음 URL을 방문하여 위의 예를 실행하세요 - http://localhost/cakephp4/cookie/testcookies

CakePHP 쿠키 관리

위 내용은 CakePHP 쿠키 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿