Subcookies V2
Posted on 09 May 2008 (02:47 PM)
My Subcookies article from May the 27th of last year has proven to be my most popular bit of writing.
A year after publishing, "C" has requested an update.
I have now rewritten my cookies script, fixing some issues pointed out by "C", and added some security as pointed out by Jim Thomson.
Notable changes:
Note; for a complete rundown of the original script, read Subcookies.
- The
subcookiejar.fetch ()method now returns an object literal (or, as the cool kids say, "JSON") if the second parameter is left undefined. This means that by doing the following...// bake a new cookiesubcookiejar.bake ('admin', {name: 'Harmen',age: 23,homepage: 'http://www.whatstyle.net'}, 2);// fetch itvar admin = subcookiejar.fetch ('admin');- Download this code: /code/subcookies_v21.txt
alert (admin.name);alert (admin.age);alert (admin.homepage);- Download this code: /code/subcookies_v22.txt
- If the second parameter is given, however,
subcookiejar.fetchwill return eithernullif the requested subcookie is not available, or just that subcookie. - Also, it is now possible to append to existing cookies. If, after executing the code above, I execute the following code...
subcookiejar.bake ('admin', {city: 'Harderwijk',country: 'The Netherlands'}, 2);- Download this code: /code/subcookies_v23.txt
{name: 'Harmen',age: 23,homepage: 'http://www.whatstyle.net',city: 'Harderwijk',country: 'The Netherlands'}- Download this code: /code/subcookies_v24.txt
Other changes consist purely of improving some code, comments and security checks.
So, the new version can be downloaded here. Go and grab it, it's free!
As always, I'd love to hear feedback. If you have any, do let me know.
And C, sorry to keep you waiting ;).
Filed under Javascript
- ← previous article: Help the UN World Food Program to end world hunger
- → next article: Adobe releases Dreamweaver CS4 Beta
Comments:
OMG!! I love you man!! I really do! : )
''
And C, sorry to keep you waiting ;)
"
It worth all the waiting! ; )
this comment has been quoted by Harmen Janssen
Good!
I'm glad you're satisfied with my update. :)
I love the names in your code. bake. crumble. cookiejar. The code is awesome, too. Good point about the subcookie separator.
Thank you! lesley
I am having problems with the fetch portion of this script.
I am receiving errors, '{cookiename} is null' when trying to fetch a cookie. When looking at the cookiejar object, I see there is code to prevent errors for both a cookie, and it's subcookies when they don't exist, but I still receive the error.
Any ideas?
this comment has been quoted by Harmen Janssen
Sean, the cookiejar object returns null when no cookie with the specified name is found.
Is this the reason of your error, or does the error really happen inside the function?
If you have the Web Developer Toolbar installed (Firefox extension), you can see what cookies are in place on a certain website, have you checked if the cookie's really there?