Thursday, 15 July 2010

javascript - New value for cookie appended -



javascript - New value for cookie appended -

this javascript code

function writecookie(cookiename, cookievalue, cookieduration) { var expiration = new date(); var = new date(); expiration.settime(now.gettime() + (parseint(cookieduration) * 60000)); document.cookie = cookiename + '=' + escape(cookievalue) + '; expires=' + expiration.togmtstring() + '; path=/'; } function readcookie(cookiename) { if (document.cookie.length > 0) { var origin = document.cookie.indexof(cookiename + "="); if (beginning != -1) { origin = origin + cookiename.length + 1; var ending = document.cookie.indexof(";", beginning); if (ending == -1) ending = document.cookie.length; homecoming unescape(document.cookie.substring(beginning, ending)); } else { homecoming ""; } } homecoming ""; } var before = readcookie('totali'); var after = before + 1; writecookie('totali', after, 43200);

should read cookie 'totali', add together "1" value , rewrite new value. first time run code, cookie becomes "1", sec time becomes "11", 3rd "111" , on. problem?

you concatenating strings. convert value read cookie number before attempting add together it:

var after = parseint(before) + 1;

but problem first time read cookie, value empty string, , parseint("") nan. in case, have check before utilize it. assign 1 if function returns empty string, or value stored in cookie + 1 if not:

var after = (before.trim() == "") ? 1 : parseint(before) + 1;

this assumes never place other number in totali cookie.

see http://jsfiddle.net/9rlzp/3/ (i changed name of cookie, can see alter without having remove previous cookie)

javascript cookies

No comments:

Post a Comment