Forum Moderators: open

Message Too Old, No Replies

Strange 'UserCode' string in cookie value for IE7

         

littlegiant

7:54 pm on May 15, 2007 (gmt 0)

10+ Year Member



Greetings,

I'm experimenting for the first time with creating and accessing cookies using Javascript.

I have this code on page A:

<script type="text/javascript">
<!--
document.cookie = "mycookie=" + escape("This is my cookie");
window.alert("mycookie=" + escape("This is my cookie"));
// -->
</script>

And I have this code on page B (in the same directory as page A):

<script type="text/javascript">
<!--
var cookieSet = document.cookie;
var cookieSetParts = cookieSet.split("=");
var cookieName = cookieSetParts[0];
var cookieValue = unescape(cookieSetParts[1]);
alert(cookieName);
alert(cookieValue);
// -->
</script>

Then I load page A to create the cookie after which I go to page B to access the cookie. Everything works as I expected it to in Firefox, Opera and IE6. On page B, I get two alerts displaying first the cookie name ('mycookie') and then the unescaped cookie value ('This is my cookie').

However when I do the whole thing in IE7, page B displays "This is my cookie; UserCode" for the cookie value.

What the heck is this 'UserCode' business? I can't find anything in Google about it at all.

Any idea?

Dabrowski

3:28 pm on May 16, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You might want to try this code...

// Cookie Functions
// Unknown Author - but Thanks!

function getCookie( 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 ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
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() : '' ) + //expires.toGMTString()
( ( path )? ';path=' + path : '' ) +
( ( domain )? ';domain=' + domain : '' ) +
( ( secure )? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
if ( getCookie( name ) ) document.cookie = name + '=' +
( ( path )? ';path=' + path : '') +
( ( domain )? ';domain=' + domain : '' ) +
';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

littlegiant

10:26 pm on May 17, 2007 (gmt 0)

10+ Year Member



Okay thanks anyway Dabrowski but after messing around with how Javascript and IE7 handles cookies, I see that that 'UserCode' string is not really a problem so I'm just going to forget about it.

Dabrowski

10:38 pm on May 17, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



I'm not saying it is, just giving you some easy standard functions to manage your cookies.

Try this:

// Page A 
setCookie( "mycookie", "This is my cookie");

// Page B 
alert( getCookie( "mycookie"));

littlegiant

10:45 pm on May 17, 2007 (gmt 0)

10+ Year Member



Yes much thanks Dabrowski but I already have a whole bunch of ready-made cookie functions in my various javascript manuals. At any rate, I'm the kind that likes to learn stuff from the ground up so I didn't even use the cookie functions I had in my manuals. I just started writing scripts from scratch. I pretty much have it down now.

Dabrowski

11:11 am on May 21, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Well done, I admire that!

I work to the same philosophy and always rewrite stuff, but simple string functions I can do without.

Hope you get it working ok!

Dabrowski

12:08 pm on May 21, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Incidentally, where did the UserCode string come from?

littlegiant

5:37 pm on May 21, 2007 (gmt 0)

10+ Year Member



I don't know. That's what I was wondering. It only shows up in IE7 when setting up and running the scripts I posted in the thread starter.