Maison  >  Article  >  développement back-end  >  Gestion des cookies CakePHP

Gestion des cookies CakePHP

WBOY
WBOYoriginal
2024-09-10 17:26:47718parcourir

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.

Écrire un cookie

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);

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)

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()

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)

Exemple

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

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)

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

Exemple 1

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

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();
});

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;
?>

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!

Déclaration:
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
Article précédent:Gestion des sessions CakePHPArticle suivant:Gestion des sessions CakePHP