Maison > Article > développement back-end > Gestion des cookies CakePHP
La gestion des cookies avec CakePHP est simple et sécurisée. Il existe une classe Gestion des cookies CakePHPComponent qui est utilisée pour gérer les cookies. La classe propose plusieurs méthodes pour travailler avec les cookies.
Pour travailler avec les cookies, ajoutez ces 2 classes à votre contrôleur −
use Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHP; use Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection;
L'objet cookie doit d'abord être créé pour enregistrer un cookie.
$cookie = new Gestion des cookies CakePHP(name,value,expiration time,path,domain);
Le nom et la valeur sont obligatoires et les autres sont des paramètres facultatifs.
Voici la syntaxe pour écrire un cookie.
$cookie = new Gestion des cookies CakePHP(name,value,expiration time,path,domain);
Le cookie créé doit être ajouté à cookieCollection comme indiqué ci-dessous −
$cookie = new Gestion des cookies CakePHP('name','XYZ'); $cookies = new Gestion des cookies CakePHPCollection([$cookie]);
Si l'objet de collecte de cookies est déjà créé, le reste des cookies peut être ajouté comme indiqué ci-dessous −
$cookies = $cookies->add($cookie);
Pour lire le cookie, utilisez la méthode get() de cookiecollection.
La syntaxe du cookie de lecture est la suivante −
Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection::get($name)
Cela vous renverra l'interface cookiecollection, pour obtenir la valeur du cookie, vous devrez appeler la méthode getValue().
Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection Interface::getValue()
La méthode has() de cookieCollection vous dira si le cookie est présent ou non.
Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection::has($name)
echo $isPresent = $this->cookies->has('name');
La méthode remove() est utilisée pour supprimer le cookie. Voici la syntaxe de la méthode Remove().
Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection::remove($name)
La méthode remove() prendra un argument, le nom de la variable cookie ($name) à supprimer.
$test = $this->cookies->remove('name');
Apportez des modifications au fichier config/routes.php comme indiqué dans le programme suivant.
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'=>'Gestion des cookies CakePHPs','action'=>'testGestion des cookies CakePHPs']); $builder->fallbacks(); });
Créez un fichier Gestion des cookies CakePHPsController.php dans src/Controller/Gestion des cookies CakePHPsController.php. Copiez le code suivant dans le fichier du contrôleur.
src/Controller/Gestion des cookies CakePHPs/Gestion des cookies CakePHPsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHP; use Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection; class Gestion des cookies CakePHPsController extends AppController{ public $cookies; public function testGestion des cookies CakePHPs() { $cookie = new Gestion des cookies CakePHP('name','XYZ'); $this->cookies = new Gestion des cookies CakePHPCollection([$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()); } } ?>
Créez un répertoire Gestion des cookies CakePHPs dans src/Template et sous ce répertoire, créez un fichier View appelé test_cookies.php. Copiez le code suivant dans ce fichier.
src/Template/Gestion des cookies CakePHP/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; ?>
Exécutez l'exemple ci-dessus en visitant l'URL suivante - http://localhost/cakephp4/cookie/testcookies
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!