Can someone post code that can read/write cookie collections with keys?

M

Mike

Hello,

I can't find any javascript that reads and writes cookies with keys,
so that it is compatible with ASP (I want to read and write cookies
from both javascript and ASP)

for example in ASP:
<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

I'm looking for javascript code that can read that information...

Thanks,
Mike
 
K

kaeli

Hello,

I can't find any javascript that reads and writes cookies with keys,
so that it is compatible with ASP (I want to read and write cookies
from both javascript and ASP)

Is this what you're looking for?
Extend it as needed for domain and such.
Watch for word-wrapping.

--------------- jsCookies.js -----------------------------------

/* This file contains cookie functions. */
/* File Functions:
1. setCookie - writes cookie
2. getCookie - gets value of cookie
3. removeCookie - deletes a cookie
4. detectCookies - checks if cookies are enabled
*/

function setCookie(cookieName, cookieValue, expireDays)
{
/* Pass in three strings - the name of the cookie, the value, and the
number of days until expiration.
Pass in a "" empty string for expireDays to set a session cookie (no
expires date).
Pass in any other date for expire as a number of days to be added to
today's date. */

var expires = "";
var re = /^\d+$/;

/* make sure expireDays is a number */
if (expireDays != "" && re.test(expireDays))
{
expires = new Date();
expires.setDate(expires.getDate() + expireDays);
expires = expires.toGMTString();
}
document.cookie = cookieName+"="+cookieValue+";expires="+expires;
}

function removeCookie (cookieName)
{
/* Pass in the name of the cookie as a string and it will be removed. */
expires = Now();
document.cookie = cookieName+"= ;expires="+expires.toGMTString();
}

function getCookie (cookieName)
{
cookieValue = ""
if (document.cookie.indexOf(cookieName) == -1)
{
/* there is no cookie by this name for this user */
return cookieValue;
}
else
{
/* get the beginning index of the cookie by looking for the cookie name
*/
cookieStart = document.cookie.indexOf(cookieName);
/* get the beginning index of the cookie value by looking for the equal
sign after the name */
cookieValStart = (document.cookie.indexOf("=", cookieStart) + 1);
/* get the end index of the cookie value by looking for the semi-colon
after the value */
cookieValEnd = document.cookie.indexOf(";", cookieStart);
/* if no semi-colon, then use the whole length */
if (cookieValEnd == -1)
{
cookieValEnd = document.cookie.length
}
/* use substring to get the text between the two indices and that is
the value of the cookie */
cookieValue = document.cookie.substring(cookieValStart, cookieValEnd);
return cookieValue;
}
}

function detectCookies()
{
/* function returns true if cookies are enables, false if not */
setCookie("test", "test", "");
tmp = getCookie("test")
if (tmp != "test")
{
return false;
}
else
{
return true;
}
}

--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top