![]() |
cookies... perl.. javascript
Can anyone tell me why the cookie created by this javascript...
<script language=javascript type="text/javascript"> <!-- function SetCookie(username, value, expires, path, domain) { document.cookie = username + "=" + escape(value) + ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain); } var expiration = new Date(); expiration.setTime(expiration.getTime() + 60000); SetCookie('username', 'Peter', expiration); // --> </script> is not seen by this perl script? #!/usr/local/bin/perl use CGI; $q = new CGI; print $q->header; $cookie_in = $q->cookie("username"); if($cookie_in) { print $cookie_in; } else { print "Can't find cookie\n"; } -Lisa. |
Re: cookies... perl.. javascript
Lisa wrote:
> Can anyone tell me why the cookie created by this javascript... > > <script language=javascript type="text/javascript"> > <!-- > function SetCookie(username, value, expires, path, domain) > { document.cookie = username + "=" + escape(value) + > ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + > ((path == null) ? "" : "; path=" + path) + > ((domain == null) ? "" : "; domain=" + domain); > } > var expiration = new Date(); > expiration.setTime(expiration.getTime() + 60000); > SetCookie('username', 'Peter', expiration); ^^^ > // --> > </script> > > is not seen by this perl script? When a named argument of a function is not provided, its value is not `null' (since that represents a null, empty, or non-existent reference) but `undefined'. So you set the cookie's `path' and `domain' to `undefined' as you do not provide those arguments. And a site cannot read the cookies not of its domain set which explains why your Perl script fails. In boolean expressions, `undefined' evaluates to `false', so you can use the following: function SetCookie(username, value, expires, path, domain) { document.cookie = username + "=" + escape(value) + (expires ? "" : "; expires=" + expires.toGMTString()) + (path ? "" : "; path=" + path) + (domain ? "" : "; domain=" + domain); } HTH PointedEars |
Re: cookies... perl.. javascript
Thomas 'PointedEars' Lahn <PointedEars@web.de> writes:
> Lisa wrote: > > function SetCookie(username, value, expires, path, domain) > > { document.cookie = username + "=" + escape(value) + > > ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + .... > > When a named argument of a function is not provided, its > value is not `null' (since that represents a null, empty, > or non-existent reference) but `undefined'. So you set the > cookie's `path' and `domain' to `undefined' as you do not > provide those arguments. However, since Lisa uses "==" to compare, it still works, since type conversion makes: (undefined == null) true. (but yes, just using "expires" in the condition is sufficient) /L -- Lasse Reichstein Nielsen - lrn@hotpop.com DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html> 'Faith without judgement merely degrades the spirit divine.' |
| All times are GMT. The time now is 10:32 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.