I am using this line to set multiple key-value pair at once to one cookie
document.cookie="username=John Smith; test1=ew; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";
it seemed test1
is not set to the cookie successfully, because when I write document.cookie
in the console, it didn't print this key-value pair. Anyone know how to set multiple key-value pair to ONE cookie?
A cookie can contain only one “string” value in JavaScript, and storing multiple key-value pairs requires multiple cookies. However, using multiple cookies can also cause some problems.
php'; function setCookieData($arr) { $cookiedata = getAllCookieData(); if ($cookiedata == null) { $cookiedata = array(); } foreach ($arr as $name => $value) { $cookiedata[$name] = $value; } setcookie('cookiedata', serialize($cookiedata), time() + 30*24*60*60); } function getAllCookieData() { if (isset($_COOKIE[' ...
To comply with the standard, you should store no more than 4096 bytes per cookie.
It does not make sense to store multiple key-value pairs into one cookie, because by definition a cookie represents one key-value pair.
I believe you don't understand well how document.cookie
works. It is not a standard JS string: when you set it, the cookie definition it contains is appended to the list of existing cookies. That is, you cannot set two cookies at the same time using this API.
You have two solutions:
Use a cookie for each key-value you want to store:
document.cookie = "myCookie=myValue";
document.cookie = "myOtherCookie=myOtherValue";
Store a single cookie with a custom serialization of your complex data, for example JSON:
document.cookie = "myCookie=" + JSON.stringify({foo: 'bar', baz: 'poo'});
Actually i think it would be better to usedocument.cookie = "myCookie=foo='bar'&baz='poo'; here is the rest of cookie specifications if you like..."
as far as i know, it also is compatible with Asp
and Asp.Mvc
on server side:string foo=Request.Cookies["myCookie"]["foo"]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With