diff options
author | Phil Sturgeon <email@philsturgeon.co.uk> | 2011-02-16 18:23:16 +0100 |
---|---|---|
committer | Phil Sturgeon <email@philsturgeon.co.uk> | 2011-02-16 18:23:16 +0100 |
commit | d8d1e24eee56d2466c91ecd72b3c8932eb3d0639 (patch) | |
tree | f9a78a5640393b74851eef4d1465e2ccbcc3bd37 | |
parent | f2b9c911bcee47166f3fdc8f2f57d1cafeade006 (diff) |
Secure cookies can now be made with the set_cookie() helper and Input Class method.
-rw-r--r-- | system/core/Input.php | 7 | ||||
-rw-r--r-- | system/helpers/cookie_helper.php | 4 | ||||
-rw-r--r-- | user_guide/changelog.html | 1 | ||||
-rw-r--r-- | user_guide/libraries/input.html | 18 |
4 files changed, 17 insertions, 13 deletions
diff --git a/system/core/Input.php b/system/core/Input.php index 16b295546..3957aa63d 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -208,13 +208,14 @@ class CI_Input { * @param string the cookie domain. Usually: .yourdomain.com * @param string the cookie path * @param string the cookie prefix + * @param bool true makes the cookie secure * @return void */ - function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '') + function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE) { if (is_array($name)) { - foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'name') as $item) + foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'name', 'secure') as $item) { if (isset($name[$item])) { @@ -245,7 +246,7 @@ class CI_Input { $expire = ($expire > 0) ? time() + $expire : 0; } - setcookie($prefix.$name, $value, $expire, $path, $domain, 0); + setcookie($prefix.$name, $value, $expire, $path, $domain, $secure); } // -------------------------------------------------------------------- diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index 7701d503f..7cee02827 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -44,11 +44,11 @@ */ if ( ! function_exists('set_cookie')) { - function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '') + function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE) { // Set the config file options $CI =& get_instance(); - $CI->input->set_cookie($name, $value, $expire, $domain, $path, $prefix); + $CI->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure); } } diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 4d3b502a8..ab825c8d8 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -68,6 +68,7 @@ Hg Tag: n/a</p> <ul> <li class="reactor">Added <kbd>decimal</kbd>, <kbd>less_than</kbd> and <kbd>greater_than</kbd> rules to the <a href="libraries/form_validation.html">Form validation Class</a>.</li> <li class="reactor"><a href="libraries/input.html">Input Class</a> methods <kbd>post()</kbd> and <kbd>get()</kbd> will now return a full array if the first argument is not provided.</li> + <li class="reactor">Secure cookies can now be made with the <kbd>set_cookie()</kbd> helper and <a href="libraries/input.html">Input Class</a> method.</li> </ul> </li> </ul> diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html index 4faecd768..844e99ab8 100644 --- a/user_guide/libraries/input.html +++ b/user_guide/libraries/input.html @@ -187,13 +187,14 @@ Array Method, and Discrete Parameters:</p> <p>Using this method, an associative array is passed to the first parameter:</p> <code>$cookie = array(<br /> - 'name' => 'The Cookie Name',<br /> - 'value' => 'The Value',<br /> - 'expire' => '86500',<br /> - 'domain' => '.some-domain.com',<br /> - 'path' => '/',<br /> - 'prefix' => 'myprefix_',<br /> - );<br /> + 'name' => 'The Cookie Name',<br /> + 'value' => 'The Value',<br /> + 'expire' => '86500',<br /> + 'domain' => '.some-domain.com',<br /> + 'path' => '/',<br /> + 'prefix' => 'myprefix_',<br /> + 'secure' => TRUE<br /> +);<br /> <br /> $this->input->set_cookie($cookie); </code> @@ -208,12 +209,13 @@ zero the cookie will only last as long as the browser is open.</p> <p>For site-wide cookies regardless of how your site is requested, add your URL to the <strong>domain</strong> starting with a period, like this: .your-domain.com</p> <p>The path is usually not needed since the function sets a root path.</p> <p>The prefix is only needed if you need to avoid name collisions with other identically named cookies for your server.</p> +<p>The secure boolean is only needed if you want to make it a secure cookie by setting it to TRUE.</p> <h4>Discrete Parameters</h4> <p>If you prefer, you can set the cookie by passing data using individual parameters:</p> -<code>$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix);</code> +<code>$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);</code> <h2>$this->input->get_cookie()</h2> |