CodeIgniter Cookie 管理


Cookie 是从 Web 服务器发送来保存在客户端计算机上的一小段数据。 CodeIgniter 有一个名为“Cookie Helper”的助手,用于 cookie 管理。

语法

set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]])

参数

  • $name( mixed ): 此函数可用的所有参数的 Cookie 名称或关联数组

  • $value( string ): Cookie 值

  • $expire( int ): 距离过期的秒数

  • $domain( string ): Cookie 域(通常为:.yourdomain.com)

  • $path( string ): Cookie 路径

  • $prefix( string ): Cookie 名称前缀

  • $secure( bool ): 是否只通过HTTPS发送cookie

  • $httponly( bool ): 是否对 JavaScript 隐藏 cookie

返回类型

void

set_cookie()函数可以使用两种方式传递所有值。第一种方式只能传递数组,第二种方式也可以传递单个参数。

语法

set_cookie( $index [, $xss_clean = NULL ]])

参数

  • $index( string ): Cookie名称

  • $xss_clean( bool ):是否对返回值应用XSS过滤

Return

cookie 值或 NULL(如果未找到)

返回类型

mixed

get_cookie()函数用于获取使用 set_cookie() 函数设置的 cookie。

语法

删除_cookie( $name [, $域 = '' [, $path = '/' [, $前缀 = '' ]]]])

参数

  • $name( string ): Cookie名称

  • $domain( string ): Cookie 域(通常为:.yourdomain.com)

  • $path( string ): Cookie 路径

  • $prefix( string ): Cookie 名称前缀

返回类型

void

delete_cookie()函数用于删除cookie()。

例子


创建一个名为Cookie_controller.php的控制器,并将其保存在application/controller/Cookie_controller.php

<?php 
    class Cookie_controller extends CI_Controller {
	
        function __construct() {
            parent::__construct();
            $this->load->helper(array('cookie', 'url'));
        }
  
        public function index() {
            set_cookie('cookie_name','cookie_value','3600');
            $this->load->view('Cookie_view');
        }
  
        public function display_cookie() {
            echo get_cookie('cookie_name');
            $this->load->view('Cookie_view');
        }
  
        public function deletecookie() {
            delete_cookie('cookie_name');
            redirect('cookie/display');
        }
		
    }
?>

创建一个名为cookie_view.php的视图文件,并将其保存在application/views/Cookie_view.php

<!DOCTYPE html> 
<html lang = "en">
 
    <head>
        <meta charset = "utf-8">
        <title>CodeIgniter View 例子</title>
    </head>
	
    <body>
        <a href = 'display'>Click Here</a> to view the cookie.<br>
        <a href = 'delete'>Click Here</a> to delete the cookie.
    </body>
	
</html>

修改application/config/routes.php文件,并在文件末尾添加以下一行。

$route['cookie'] = "Cookie_controller"; 
$route['cookie/display'] = "Cookie_controller/display_cookie"; 
$route['cookie/delete'] = "Cookie_controller/deletecookie";

将 yoursite.com 替换为你站点的域名,在浏览器中访问以下链接执行上述示例。

http://yoursite.com/index.php/cookie

输出如下面的屏幕截图所示。

cookie_management