PDA

View Full Version : cookie delete


cunning-fox
07-18-2002, 11:39 PM
Hi,

Is anyone good enough with cookies to make this cookie expire upon the browser closing? I'm not sure how to make the expiration in this format. Thanks

Here is the whole code:

<script type=text/javascript>
// cookie construct

function Cookie(document,name,hours,path,domain,secure) {
// any VAR in "this" that does not start with a "$" will
// be written into the cookie (read from also)
this.$doc = document
this.$name = name
if (hours) this.$expiration=new Date((new Date()).getTime()+hours*3600000); else this.$expiration = null
if (path) this.$path = path; else this.$path = null
if (domain) this.$domain = domain; else this.$domain = null
if (secure) this.$secure = true; else this.$secure = false
}

function CookieWrite() {
var cookieval=""
for(var prop in this) {
if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function') || prop == '') continue
if (cookieval != "") cookieval += '&'
cookieval+=prop+":"+escape(this[prop])
}
var cookie=this.$name+"="+cookieval
if (this.$expiration) cookie+='; expires=' + this.$expiration.toGMTString()
if (this.$path) cookie+='; path=' + this.$path
if (this.$domain) cookie+='; domain=' + this.$domain
if (this.$secure) cookie+='; secure'
this.$doc.cookie=cookie
}

function CookieRead() {
var allcookies=this.$doc.cookie
if (allcookies=="") {
return false
}
var start= allcookies.indexOf(this.$name+'=')
if (start== -1) {
return false
}
start += this.$name.length+1
var end=allcookies.indexOf(';',start)
if (end == -1) end=allcookies.length
var cookieval = allcookies.substring(start,end)
var a = cookieval.split('&')
for (var i=0;i < a.length;i++) a[i]=a[i].split(':')
for (var i=0;i < a.length;i++) this[a[i][0]]=unescape(a[i][1])
return true
}

function CookieDelete() {
var cookie = this.$name+'='
if (this.$path) cookie+='; path='+this.$path
if (this.$domain) cookie+='; domain='+this.$domain
cookie+='; expires=Fri, 02-Jan-2002 00:00:00 GMT' // MAKE IT EXPIRE!
this.$doc.cookie=cookie
}

new Cookie()
Cookie.prototype.write = CookieWrite
Cookie.prototype.del = CookieDelete
Cookie.prototype.read = CookieRead

// end cookie construct

var myCookie = new Cookie(document,"test",240)
myCookie.test="test";
myCookie.write();
if (!myCookie.read() || myCookie.test!="test")
document.write("Your computer does not have cookies enabled!");
else
document.write("Your computer does have cookies enabled!");
</script>

cunning-fox
07-19-2002, 01:26 AM
anyone?

tamienne
07-19-2002, 08:17 PM
There are two types of cookies--session and persistent. the difference is that session cookies are held until the browser is closed. Programmically the difference is that you don't set the expiration of a session cookie.

That being said, it looks like all you need to do is call the Cookie Construct without a time.

ie..
var myCookie = new Cookie(document,"test")