<HTML>
<HEAD>
<TITLE>Cookie Functions</TITLE>
<SCRIPT>
//
However, getCookie
cannot distinguish between these and will return
// the first cookie that matches a given
name. It is therefore
// recommended that you *not* use the same
name for cookies with
// different paths. (Bear in mind that
there is *always* a path
// associated with a cookie; if you don't
explicitly specify one,
// the path of the setting document is
used.)
//
// Function to
return the value of the cookie specified by "name".
// name
- String object, the cookie name.
// returns - String object, the
cookie value, or null if the cookie does not exist.
function getCookie(name)
{
var prefix = name
+ "=";
var begin =
document.cookie.indexOf(prefix);
if (begin == -1) return
null;
var end = document.cookie.indexOf(";",
begin);
if (end == -1) end =
document.cookie.length;
return unescape(document.cookie.substring(begin
+ prefix.length,
end));
}
// Function to
create or update a cookie.
// name
- String object containing the cookie name.
// value
- String object containing the cookie value. May contain
// any valid string characters.
// [expires]
- Date object containing the expiration data of the cookie. If
// omitted or null, expires the cookie at
the end of the current session.
// [path]
- String object indicating the path for which the cookie is valid.
// If omitted or null, uses the path of the
calling document.
// [domain]
- String object indicating the domain for which the cookie is
// valid. If omitted or null, uses the
domain of the calling document.
// [secure]
- Boolean (true/false) value indicating whether cookie transmission
// requires a secure channel (HTTPS).
//
// The first two parameters are required.
The others, if supplied, must
// be passed in the order listed above. To
omit an unused optional field,
// use null as a place holder. For example,
to call setCookie
using name,
// value and path, you would code:
//
// setCookie("myCookieName",
"myCookieValue", null, "/");
//
// Note that trailing omitted parameters do
not require a placeholder.
//
// To set a secure cookie for path
"/myPath", that expires after the
// current session, you might code:
//
// setCookie(myCookieVar,
cookieValueVar, null, "/myPath", null, true);
//
// NOTE
that it is possible to set multiple cookies with the same
// name but different (nested) paths.
For example:
//
// setCookie("color",
"red", null, "/outer");
// setCookie("color",
"blue", null, "/outer/inner");
function setCookie(name,
value, expires, path, domain, secure) {
document.cookie
= name + "=" + escape(value)
+
((expires) ?
"; expires=" + expires.toGMTString()
:
"") +
((path) ?
"; path=" + path :
"") +
((domain) ?
"; domain=" + domain :
"") +
((secure) ?
"; secure" :
"");
}
// deleteCookie
now sets the expiration date to the earliest
// usable date (one second into 1970), and
sets the cookie's value
// to null for good measure.
//
// Also, this version adds optional path
and domain parameters to
// the deleteCookie
function. If you specify a path and/or
domain
// when creating (setting) a cookie,
you must specify the same
// path/domain when deleting it, or
deletion will not occur.
// Function to delete a cookie. (Sets
expiration date to start of epoch)
// name
- String object containing the cookie name
// path
- String object containing the path of the cookie to delete. This MUST
// be the same as the path used to create
the cookie, or null/omitted if
// no path was specified when creating the
cookie.
// domain
- String object containing the domain of the cookie to delete. This MUST
// be the same as the domain used to create
the cookie, or null/omitted if
// no domain was specified when creating
the cookie.//
function deleteCookie(name,
path, domain) {
if (getCookie(name))
{
document.cookie
= name + "=" +
((path) ?
"; path=" + path :
"") +
((domain)
?
"; domain=" + domain :
"") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
/********************* EXAMPLES
*********************/
var expdate = new Date();
// 24
(hrs) * 60 (mins) * 60
(secs) * 1000 (msecs) => 24 hrs from now
expdate.setTime(expdate.getTime()
+ (24 * 60 * 60 * 1000)); //
when the cookie will expire
// OR
// get today's date (getDate())
and add one day (24 hrs)
// expdate.setDate(expdate.getDate()
+ 1); //
produces the same result as above
setCookie("cpath",
"http://www.hidaho.com/colorcenter/",
expdate);
setCookie"cname",
"hIdaho Design ColorCenter", expdate);
setCookie("tempvar",
"This is a temporary cookie.");
setCookie("ubiquitous",
"This cookie will work anywhere in this domain", null,
"/");
setCookie("paranoid",
"This cookie requires secure communications", expdate,
"/", null, true);
setCookie("goner",
"This cookie must die!");
document.write(document.cookie
+ "<P>");
deleteCookie("goner");
document.write(document.cookie+
"<P>");
document.write("cpath
= " + getCookie("cpath")
+ "<BR>");
document.write("cname
= " + getCookie("cname")
+ "<BR>");
document.write("tempvar
= " + getCookie("tempvar")
+ "<BR>");
document.write("ubiquitous
= " + getCookie("ubiquitous")
+ "<BR>");
document.write("paranoid
= " + getCookie("paranoid")
+ "<BR>");
document.write("goner
= " + getCookie("goner")
+ "<BR>");
</SCRIPT>
</BODY>
</HTML>
The results of the above script are shown below:
|