Published May 14, 2012
Cookies are a way to store information on the user’s computer. We can use them for a lot of different things: store the language, the graphical theme, login information (beware of security issues though), etc…
Here are a set of functions to manipulate those cookies through JavaScript.
/**
* Function to get a JavaScript cookie.
*
* @see http://www.w3schools.com/js/js_cookies.asp
*
* @param cName Name of the cookie to get.
* @returns the value of the cookie, null if not found.
*/
function getCookie(cName) {
var i, n, name, value, cookies = document.cookie.split(";");
for (i = 0, n = cookies.length ; i < n ; i++) {
name = cookies[i].substr(0, cookies[i].indexOf("="));
name = name.replace(/^\s+|\s+$/g, "");
if (name == cName) {
value = cookies[i].substr(cookies[i].indexOf("=") + 1);
return decodeURIComponent(value);
}
}
return null;
}
/**
* Function to set a JavaScript cookie.
*
* @see http://www.w3schools.com/js/js_cookies.asp
*
* @param name Name of the cookie to set.
* @param value Value of the cookie.
* @param exDays (Optional) Days before expiration of the cookie.
* @param domain (Optional) Domain on which the cookie is available.
* @param path (Optional) Path on the server in which the cookie is available.
* @param secure (Optional) Whether the cookie should be transmitted over a
* secure HTTPS.
* @param httponly (Optional) Whether the cookie should be accessible through
* HTTP only (meaning it won't be accessible to client scripts).
*/
function setCookie(name, value, exDays, domain, path, secure, httponly) {
// Name must be set
if (name == null)
return false;
var exDate = new Date();
exDate.setDate(exDate.getDate() + exDays);
var value = encodeURIComponent(value);
var expires_string = ((exDays == null) ? "" : "; expires=" + exDate.toUTCString());
var domain_string = ((domain == null) ? "" : "; domain=" + domain);
var path_string = ((path == null) ? "" : "; path=" + path);
var secure_string = ((secure == null || !secure) ? "" : "; Secure");
var httponly_string = ((secure == null || !secure) ? "" : "; Httponly");
document.cookie = name + "=" + value
+ expires_string + domain_string + path_string
+ secure_string + httponly_string;
return true;
}
/**
* Function to unset a JavaScript cookie.
*
* @param name Name of the cookie to unset.
*/
function unsetCookie(name) {
return setCookie(name, "", -1);
}
- Dad ! Dad ! How do you cook cookies?
- … Ask Wiki.
To get the cookies out of the oven: Fire Cookie.