开发手册 欢迎您!
软件开发者资料库

CakePHP - Cookie管理

CakePHP Cookie管理 - 从概述,安装,文件夹结构,配置,电子邮件配置,路由,生成URL,重定向路由,控制器,视图,扩展视图,查看元素,查看事件,使用数据库,查看记录,更新,了解CakePHP记录,删除记录,服务,错误和异常处理,记录,从处理,国际化,会话管理,Cookie管理,安全性,验证,创建验证器。

使用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中写入数据.

Cookies

访问以下网址t o读取cookie数据 :   http://localhost:85/CakePHP/cookie/read

CakePHP Cookies

访问以下网址以检查Cookie数据 :   http://localhost:85/CakePHP/cookie/check

CakePHP Cookies

访问以下网址删除Cookie数据 :   http://localhost:85/CakePHP/cookie/delete

Cookie已删除