Gestion des cookies CakePHP

WBOY
Libérer: 2024-09-10 17:26:47
original
842 Les gens l'ont consulté

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;
Copier après la connexion

L'objet cookie doit d'abord être créé pour enregistrer un cookie.

$cookie = new Gestion des cookies CakePHP(name,value,expiration time,path,domain);
Copier après la connexion
Copier après la connexion

Le nom et la valeur sont obligatoires et les autres sont des paramètres facultatifs.

Écrire un cookie

Voici la syntaxe pour écrire un cookie.

$cookie = new Gestion des cookies CakePHP(name,value,expiration time,path,domain);
Copier après la connexion
Copier après la connexion

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]);
Copier après la connexion

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);
Copier après la connexion

Lire Gestion des cookies CakePHP

Pour lire le cookie, utilisez la méthode get() de cookiecollection.

Syntaxe

La syntaxe du cookie de lecture est la suivante −

Cake\Http\Gestion des cookies CakePHP\Gestion des cookies CakePHPCollection::get($name)
Copier après la connexion

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()
Copier après la connexion

Vérifier les cookies

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)
Copier après la connexion

Exemple

echo $isPresent = $this->cookies->has('name');
Copier après la connexion

Supprimer le cookie

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)
Copier après la connexion

La méthode remove() prendra un argument, le nom de la variable cookie ($name) à supprimer.

Exemple 1

$test = $this->cookies->remove('name');
Copier après la connexion

Exemple 2

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();
});
Copier après la connexion

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());
      }
   }
?>
Copier après la connexion

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;
?>
Copier après la connexion

Sortie

Exécutez l'exemple ci-dessus en visitant l'URL suivante - http://localhost/cakephp4/cookie/testcookies

Gestion des cookies CakePHP

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!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal