1 <?php
defined('SYSPATH') OR die('No direct access allowed.');
5 * $Id: cookie.php 3917 2009-01-21 03:06:22Z zombor $
9 * @copyright (c) 2007-2008 Kohana Team
10 * @license http://kohanaphp.com/license.html
15 * Sets a cookie with the given parameters.
17 * @param string cookie name or array of config options
18 * @param string cookie value
19 * @param integer number of seconds before the cookie expires
20 * @param string URL path to allow
21 * @param string URL domain to allow
22 * @param boolean HTTPS only
23 * @param boolean HTTP only (requires PHP 5.2 or higher)
26 public static function set($name, $value = NULL, $expire = NULL, $path = NULL, $domain = NULL, $secure = NULL, $httponly = NULL)
31 // If the name param is an array, we import it
32 is_array($name) and extract($name, EXTR_OVERWRITE
);
34 // Fetch default options
35 $config = Kohana
::config('cookie');
37 foreach (array('value', 'expire', 'domain', 'path', 'secure', 'httponly') as $item)
39 if ($
$item === NULL AND isset($config[$item]))
41 $
$item = $config[$item];
45 // Expiration timestamp
46 $expire = ($expire == 0) ?
0 : time() +
(int) $expire;
48 return setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
52 * Fetch a cookie value, using the Input library.
54 * @param string cookie name
55 * @param mixed default value
58 public static function get($name, $default = NULL)
60 return Input
::instance()->cookie($name, $default);
64 * Nullify and unset a cookie.
66 * @param string cookie name
67 * @param string URL path
68 * @param string URL domain
71 public static function delete($name, $path = NULL, $domain = NULL)
73 if ( ! isset($_COOKIE[$name]))
76 // Delete the cookie from globals
77 unset($_COOKIE[$name]);
79 // Sets the cookie value to an empty string, and the expiration to 24 hours ago
80 return cookie
::set($name, '', -86400, $path, $domain, FALSE, FALSE);