CakePHP Cookie Management

WBOY
Release: 2024-09-10 17:26:47
Original
837 people have browsed it

Handling CakePHP Cookie Management with CakePHP is easy and secure. There is a CakePHP Cookie ManagementComponent class which is used for managing CakePHP Cookie Management. The class provides several methods for working with CakePHP Cookie Managements.

To work with cookies, add this 2 classes to your controller −

use Cake\Http\CakePHP Cookie Management\CakePHP Cookie Management;
use Cake\Http\CakePHP Cookie Management\CakePHP Cookie ManagementCollection;
Copy after login

The cookie object has to be created first to register a cookie.

$cookie = new CakePHP Cookie Management(name,value,expiration time,path,domain);
Copy after login
Copy after login

The name and value are mandatory and others are optional param.

Write CakePHP Cookie Management

Following is the syntax to write a cookie.

$cookie = new CakePHP Cookie Management(name,value,expiration time,path,domain);
Copy after login
Copy after login

The cookie created has to be added to cookieCollection as shown below −

$cookie = new CakePHP Cookie Management('name','XYZ');
$cookies = new CakePHP Cookie ManagementCollection([$cookie]);
Copy after login

If the cookie collection object is already created, the rest of the cookies can be added as shown below −

$cookies = $cookies->add($cookie);
Copy after login

Read CakePHP Cookie Management

To read cookie make use of get() method from cookiecollection.

Syntax

The syntax for read cookie is as follows −

Cake\Http\CakePHP Cookie Management\CakePHP Cookie ManagementCollection::get($name)
Copy after login

This will return you cookiecollection Interface, to get the value of the cookie, you will have to call the method getValue().

Cake\Http\CakePHP Cookie Management\CakePHP Cookie ManagementCollection Interface::getValue()
Copy after login

Check CakePHP Cookie Management

The has() method from cookieCollection will tell you, if the cookie is present or not.

Cake\Http\CakePHP Cookie Management\CakePHP Cookie ManagementCollection::has($name)
Copy after login

Example

echo $isPresent = $this->cookies->has('name');
Copy after login

Delete CakePHP Cookie Management

The remove() method is used to delete cookie. Following is the syntax of the remove() method.

Cake\Http\CakePHP Cookie Management\CakePHP Cookie ManagementCollection::remove($name)
Copy after login

The remove() method will take one argument, the name of cookie variable ($name) to delete.

Example 1

$test = $this->cookies->remove('name');
Copy after login

Example 2

Make changes in the config/routes.php file as shown in the following program.

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 Cookie Managements','action'=>'testCakePHP Cookie Managements']);
   $builder->fallbacks();
});
Copy after login

Create a CakePHP Cookie ManagementsController.php file at src/Controller/CakePHP Cookie ManagementsController.php. Copy the following code in the controller file.

src/Controller/CakePHP Cookie Managements/CakePHP Cookie ManagementsController.php

<?php namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Http\CakePHP Cookie Management\CakePHP Cookie Management;
   use Cake\Http\CakePHP Cookie Management\CakePHP Cookie ManagementCollection;
   class CakePHP Cookie ManagementsController extends AppController{
      public $cookies;
      public function testCakePHP Cookie Managements() {
         $cookie = new CakePHP Cookie Management('name','XYZ');
         $this->cookies = new CakePHP Cookie ManagementCollection([$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());
      }
   }
?>
Copy after login

Create a directory CakePHP Cookie Managements at src/Template and under that directory create a View file called test_cookies.php. Copy the following code in that file.

src/Template/CakePHP Cookie Management/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;
?>
Copy after login

Output

Execute the above example by visiting the following URL − http://localhost/cakephp4/cookie/testcookies

CakePHP Cookie Management

The above is the detailed content of CakePHP Cookie Management. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template