Object Expected Error - Cookie check script


S

StevePBurgess

I am using a script (see below) to check if cookies are enabled on my
website. The script seems to work but I get an Object Expected error.
The error repor says it is at the line incidated by the *** below. Any
ideas?

<script type="text/javascript">

Set_Cookie( 'test', 'none', '', '/', '', '' );

if ( Get_Cookie( 'test' ) )
{
***

cookie_set = true;

Delete_Cookie('test', '/', '');
}

else
{
document.write( '<p><strong>In order to log in, your browser must
accept cookies. At the moment, your browser is set not to accept
cookies so you will not be able to log in.</strong><p>' );
cookie_set = false;
}



function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( name ) {

var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) &&
( name != document.cookie.substring( 0, name.length ) ) )
{
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}

</script>
 
Ad

Advertisements

D

Dr John Stockton

JRS: In article <[email protected]>
, dated Thu, 12 Jan 2006 07:07:23 local, seen in
news:comp.lang.javascript, (e-mail address removed) posted :
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

One wonders what that line is intended for.
/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;

If you want to change by a certain number of days, use getDate and
setDate. If you want to change by a certain number of hours, use
getHours and setHours. That avoids apparent or real error at Summer
Time changes.
var expires_date = new Date( today.getTime() + (expires) );

That will give an apparent error across changes in Summer Time state.

You probably don't need a second Date Object -
D.setTime(D.getTime()+864e5)
or D.setTime(+D +864e5)
though those retain the apparent error.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top