CodeIgniter Forums

Full Version: Array cookie
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

El Forum

From PHP manual:

Example #3 setcookie() and arrays

You may also set array cookies by using array notation in the cookie name. This has the effect of setting as many cookies as you have array elements, but when the cookie is received by your script, the values are all placed in an array with the cookie's name:

// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
echo "$name : $value <br />\n";

How this can be done with CI cookie's library?


El Forum

Not sure about CodeIgniter allowing it, but in the mean time you can serialize your data into one string so you can store the array in a single cookie.

Just one option.

El Forum

From looking at the helper it looks like it does support arrays.

Seems like it may work something like this:
set_cookie(array('name' => 'cname', 'value' => 'cvalue1'));
set_cookie(array('name' => 'cname', 'value' => 'cvalue2'));

El Forum

The second set_cookie call just overwrites the first one.

I just gave this a try...
set_cookie(array('name' => 'cname[one]', 'value' => 'cvalue1', 'expires' => '86500'));
set_cookie(array('name' => 'cname[two]', 'value' => 'cvalue2', 'expires' => '86500'));

And it worked fine. Shouldn't be a problem using a cookie array.

El Forum

What's wrong with:

$array['one'] = 'value';
$array['two'] = 'value2';
set_cookie(array('name'=>'array', 'value'=$array));


El Forum

Because I'm pretty sure you can't store an array in a cookie.

El Forum

you can't? Oh...

I thought I'd used it once, but now you mention it, I don't think I ever did...