CakePHP處理cookie是很容易和安全的。有一個用于管理cookie的CookieComponent類。這個類提供了與cookie相關(guān)的幾種方法。
write()方法被用來寫入cookie。以下是write()方法的語法。
CakeControllerComponentCookieComponent::write(mixed $key, mixed $value = null)
write()方法有兩個參數(shù),cookie變量名($key)和cookie變量值($value) 。
$this->Cookie->write('name', 'Virat');
我們可以通過傳遞含鍵值對的數(shù)組,來寫入多個cookie。
read()方法用來讀取cookie。以下是read()方法的語法。
CakeControllerComponentCookieComponent::read(mixed $key = null)
read()方法有一個參數(shù),cookie變量名($key)。
echo $this->Cookie->read('name');
check()方法被用來檢查一個鍵/路徑是否存在,并且具有非空值。以下是check()方法的語法。
CakeControllerComponentCookieComponent::check($key)
echo $this->Cookie->check(‘name’);
delete()方法用于刪除cookie。以下是delete()方法的語法。
CakeControllerComponentCookieComponent::delete(mixed $key)
delete()方法需要一個參數(shù),cookie變量名($key)。
$this->Cookie->delete('name');
修改config/routes.php文件如下。
config/routes.php文件
<?php use CakeCorePlugin; use CakeRoutingRouteBuilder; use CakeRoutingRouter; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->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/目錄下創(chuàng)建一個CookiesController.php文件。復(fù)制以下代碼至其中。
src/Controller/Cookies/CookiesController.php(此目錄和上一行原文有出入,注意!)
<?php namespace AppController; use AppControllerAppController; use CakeControllerComponentCookieComponent; class CookiesController extends AppController{ public $components = array('Cookie'); public function writeCookie(){ $this->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目錄下創(chuàng)建一個Cookie目錄,在該Cookie目錄下創(chuàng)建一個名為write_cookie.ctp的視圖文件。復(fù)制以下代碼至其中。
src/Template/Cookie/write_cookie.ctp
The cookie has been written.
在相同的Cookie目錄下創(chuàng)建另一個名為read_cookie.ctp的視圖文件,復(fù)制以下代碼至其中。
src/Template/Cookie/read_cookie.ctp
The value of the cookie is: <?php echo $cookie_val; ?>
在相同的Cookie目錄下創(chuàng)建另一個名為check_cookie.ctp的視圖文件,復(fù)制以下代碼至其中。
src/Template/Cookie/check_cookie.ctp
<?php if($isPresent): ?> The cookie is present. <?php else: ?> The cookie isn't present. <?php endif; ?>
在相同的Cookie目錄下創(chuàng)建另一個名為delete_cookie.ctp的視圖文件,復(fù)制以下代碼至其中。
src/Template/Cookie/delete_cookie.ctp
The cookie has been deleted.
通過訪問以下網(wǎng)址執(zhí)行上面的例子- http://localhost:85/CakePHP/Cookie/write
寫入cookie數(shù)據(jù)。
請訪問以下網(wǎng)址讀取cookie數(shù)據(jù) - http://localhost:85/CakePHP/Cookie/read
請訪問以下網(wǎng)址檢查cookie數(shù)據(jù) - http://localhost:85/CakePHP/Cookie/check
請訪問以下網(wǎng)址刪除Cookie數(shù)據(jù) - http://localhost:85/CakePHP/Cookie/delete
更多建議: