使用CakePHP处理Cookie非常简单而且安全.有一个CookieComponent类,用于管理Cookie.该类提供了几种使用Cookie的方法.
写Cookie
write()方法用于写曲奇饼.以下是write()方法的语法.
Cake\Controller\Component\CookieComponent::write(mixed $key, mixed $value = null)
write()方法将接受两个参数, cookie变量的名称($ key) , cookie变量的值($ value).
示例
$this->Cookie->write('name', 'Virat');
我们可以传递名称,值对的数组来写多个cookie.
读取Cookie
read()方法用于读取cookie.以下是read()方法的语法.
Cake\Controller\Component\CookieComponent::read(mixed $key = null)
read()方法将采用一个参数,即cookie变量的名称($ key).
示例
echo $this->Cookie->read('name');
检查Cookie
check()方法用于检查是否有密钥/path存在且具有非null值.以下是 check()方法的语法.
Cake\Controller\Component\CookieComponent::check($key)
示例
echo $this->Cookie->check(‘name’);
删除Cookie
delete()方法用于删除Cookie.以下是delete()方法的语法.
Cake\Controller\Component\CookieComponent::delete(mixed $key)
delete()方法将接受一个参数,即要删除的cookie变量($ key)的名称.
示例1
$this->Cookie->delete('name');
示例2
在config/routes.php文件中进行更改,如以下程序所示.
config/routes.php
connect('cookie/write',['controller'=>'Cookies','action'=>'write_cookie']); $routes->connect('cookie/read',['controller'=>'Cookies','action'=>'read_cookie']); $routes->connect('cookie/check',['controller'=>'Cookies','action'=>'check_cookie']); $routes->connect('cookie/delete',['controller'=>'Cookies','action'=>'delete_cookie']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
在 src/Controller/CookiesController.php 创建 CookiesController.php 文件.将以下代码复制到控制器文件中.
src/Controller/Cookies/CookiesController.php
Cookie->write('name', 'Virat'); } public function readCookie(){ $cookie_val = $this->Cookie->read('name'); $this->set('cookie_val',$cookie_val); } public function checkCookie(){ $isPresent = $this->Cookie->check('name'); $this->set('isPresent',$isPresent); } public function deleteCookie(){ $this->Cookie->delete('name'); } }?>
在 src/Template 创建目录 Cookies 并在该目录下创建视图文件名为 write_cookie.ctp .将以下代码复制到该文件中.
src/Template/Cookie/write_cookie.ctp
The cookie has been written.
在同一个Cookies目录下创建另一个名为 read_cookie.ctp 的View文件,并将以下代码复制到该文件中.
src/Template/Cookie/read_cookie.ctp
The value of the cookie is:
在同一个Cookies目录下创建另一个名为 check_cookie.ctp 的View文件,并将以下代码复制到该文件中.
src/Template/Cookie/check_cookie.ctp
The cookie is present.The cookie isn't present.
在同一Cookies目录下创建另一个名为 delete_cookie.ctp 的View文件,并将以下代码复制到该文件中.
src/Template/Cookie/delete_cookie.ctp
The cookie has been deleted.
输出
通过访问以下URL : 执行上述示例; http://localhost:85/CakePHP/cookie/write
这将帮助您在cookie中写入数据.
访问以下网址t o读取cookie数据 : http://localhost:85/CakePHP/cookie/read
访问以下网址以检查Cookie数据 : http://localhost:85/CakePHP/cookie/check
访问以下网址删除Cookie数据 : http://localhost:85/CakePHP/cookie/delete