Javascript Cookie Script Needs a Tweak 
December 6th, 2005, 03:14 AM
| | Newbie | | Join Date: Dec 2005
Posts: 1
| |
I found a great cookie script below, but don't know how to make it also pass the values sent to the cookie, to a querystring as well for tracking purposes. Can anyone help? If there was a way to simply pass the values in a cookie to the querystring that would be even easier, but from what I've been able to tell, cookie values can't be passed to a querystring.
I'm sure the answer will help alot of others who are using this script, and would like to see it pass values to a querystring as well.
Thanks Everyone,
Carlton - --------------------------------------------------------------------------
-
-
<head>
-
<script>
-
//
-
// Cookie Functions - Second Helping (21-Jan-96)
-
// Written by: Bill Dortch, hIdaho Design <bdortch@netw.com>
-
// The following functions are released to the public domain.
-
//
-
// The Second Helping version of the cookie functions dispenses with
-
// my encode and decode functions, in favor of JavaScript's new built-in
-
// escape and unescape functions, which do more complete encoding, and
-
// which are probably much faster.
-
//
-
// The new version also extends the SetCookie function, though in
-
// a backward-compatible manner, so if you used the First Helping of
-
// cookie functions as they were written, you will not need to change any
-
// code, unless you want to take advantage of the new capabilities.
-
//
-
// The following changes were made to SetCookie:
-
//
-
// 1. The expires parameter is now optional - that is, you can omit
-
// it instead of passing it null to expire the cookie at the end
-
// of the current session.
-
//
-
// 2. An optional path parameter has been added.
-
//
-
// 3. An optional domain parameter has been added.
-
//
-
// 4. An optional secure parameter has been added.
-
//
-
// For information on the significance of these parameters, and
-
// and on cookies in general, please refer to the official cookie
-
// spec, at:
-
//
-
// http://www.netscape.com/newsref/std/cookie_spec.html
-
//
-
//
-
// "Internal" function to return the decoded value of a cookie
-
//
-
function getCookieVal (offset) {
-
var endstr = document.cookie.indexOf (";", offset);
-
if (endstr == -1)
-
endstr = document.cookie.length;
-
return unescape(document.cookie.substring(offset, endstr));
-
}
-
-
//
-
// Function to return the value of the cookie specified by "name".
-
// name - String object containing the cookie name.
-
// returns - String object containing the cookie value, or null if
-
// the cookie does not exist.
-
//
-
function GetCookie (name) {
-
var arg = name + "=";
-
var alen = arg.length;
-
var clen = document.cookie.length;
-
var i = 0;
-
while (i < clen) {
-
var j = i + alen;
-
if (document.cookie.substring(i, j) == arg)
-
return getCookieVal (j);
-
i = document.cookie.indexOf(" ", i) + 1;
-
if (i == 0) break;
-
}
-
return null;
-
}
-
-
//
-
// Function to create or update a cookie.
-
// name - String object 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);
-
//
-
function SetCookie (name, value) {
-
var argv = SetCookie.arguments;
-
var argc = SetCookie.arguments.length;
-
var expires = (argc > 2) ? argv[2] : null;
-
var path = (argc > 3) ? argv[3] : null;
-
var domain = (argc > 4) ? argv[4] : null;
-
var secure = (argc > 5) ? argv[5] : false;
-
document.cookie = name + "=" + escape (value) +
-
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
-
((path == null) ? "" : ("; path=" + path)) +
-
((domain == null) ? "" : ("; domain=" + domain)) +
-
((secure == true) ? "; secure" : "");
-
}
-
-
// Function to delete a cookie. (Sets expiration date to current date/time)
-
// name - String object containing the cookie name
-
//
-
function DeleteCookie (name) {
-
var exp = new Date();
-
exp.setTime (exp.getTime() - 1); // This cookie is history
-
var cval = GetCookie (name);
-
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
-
}
-
-
</script>
-
</head>
-
-
-
<FORM NAME="demoForm" onSubmit="
-
if(demoForm.UserName.value.length != 0) {
-
var expdate = new Date ();
-
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000));
-
SetCookie('zip', demoForm.UserName.value, expdate);
-
alert('Your Zip Code is ' + demoForm.UserName.value + '. Please Press The Continue Button To Enter');
-
return false;
-
} else {
-
alert('Nothing Was Entered For Your Zip Code.');
-
return false;
-
}">
-
-
-
<CENTER>
-
Enter Your Zip Code: <INPUT TYPE="text" NAME="UserName" SIZE=12>
-
-
-
<INPUT TYPE="submit" VALUE="Submit Your Zip Code">
-
<INPUT TYPE="button" VALUE="Continue..."
-
onClick="
-
if(GetCookie('zip') == null)
-
alert('You Forgot To Enter Your Zip Code')
-
else
-
window.open('http://www.YourDomain.com/index.php', '_top')">
-
-
</FORM>
-
</CENTER>
-
-
-
I read the cookie with...
-
<SCRIPT>document.write("Your Zip Code is <b>" + GetCookie('zip') + ".");</SCRIPT>
-
-
-
--------------------------------------------------------------------------
-
Last edited by KUB365; December 6th, 2005 at 03:30 AM.
| 
April 7th, 2008, 11:01 AM
|  | Site Moderator | | Join Date: Nov 2006 Location: UK
Posts: 14,521
Provided Answers: 12 | | | re: Javascript Cookie Script Needs a Tweak -
window.open('http://www.YourDomain.com/index.php?zip=' + encodeURIComponent(GetCookie('zip')), '_top')
-
| | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 225,662 network members.
|