DarkxPunk Posted August 10, 2014 Share Posted August 10, 2014 (edited) Hello everyone! The following is my first attempt at managing a cookie. I am simply looking for what you think of it, and how you think I can improve. I made this with a tutorial online and made the buttons myself. <!DOCTYPE html><html> <head> <title></title> </head> <body> <script>function Get_Cookie( check_name ) { // first we'll split this cookie up into name/value pairs // note: document.cookie only returns name=value, not the other components var a_all_cookies = document.cookie.split( ';' ); var a_temp_cookie = ''; var cookie_name = ''; var cookie_value = ''; var b_cookie_found = false; // set boolean t/f default f var i = ''; for ( i = 0; i < a_all_cookies.length; i++ ) { // now we'll split apart each name=value pair a_temp_cookie = a_all_cookies[i].split( '=' ); // and trim left/right whitespace while we're at it cookie_name = a_temp_cookie[0].replace(/^s+|s+$/g, ''); // if the extracted name matches passed check_name if ( cookie_name == check_name ) { b_cookie_found = true; // we need to handle case where cookie has no value but exists (no = sign, that is): if ( a_temp_cookie.length > 1 ) { cookie_value = unescape( a_temp_cookie[1].replace(/^s+|s+$/g, '') ); } // note that in cases where cookie is initialized but no value, null is returned return cookie_value; break; } a_temp_cookie = null; cookie_name = ''; } if ( !b_cookie_found ) { return null; }}/*only the first 2 parameters are required, the cookie name, the cookievalue. Cookie time is in milliseconds, so the below expires will make the number you pass in the Set_Cookie function call the number of days the cookielasts, if you want it to be hours or minutes, just get rid of 24 and 60.Generally you don't need to worry about domain, path or secure for most applicationsso unless you need that, leave those parameters blank in the function call.*/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; } //alert( 'today ' + today.toGMTString() );// this is for testing purpose only var expires_date = new Date( today.getTime() + (expires) ); //alert('expires ' + expires_date.toGMTString());// this is for testing purposes only document.cookie = name + "=" +escape( value ) + ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + //expires.toGMTString() ( ( path ) ? ";path=" + path : "" ) + ( ( domain ) ? ";domain=" + domain : "" ) + ( ( secure ) ? ";secure" : "" );}// this deletes the cookie when calledfunction Delete_Cookie( name, path, domain ) { if ( Get_Cookie( name ) ) document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";} var cookieName = 'test'; var cookieValue = 'The cookie was given!'; var cookieExpires = '365'; var cookiePath = '/'; var cookieDomain = ''; var cookieSecure = '';function setCookie() { if ( Get_Cookie( 'test' ) !== cookieValue ) { if (confirm('We are going to give you a cookie!')) { Set_Cookie( cookieName, cookieValue, cookieExpires, cookiePath, cookieDomain, cookieSecure ); alert( Get_Cookie('test') ); } else { alert( 'You don'+"'"+'t want a cookie?' ); } } else { alert( 'We were going to offer you a cookie, nbut you already have one.' ); }}function checkCookie() { if ( Get_Cookie( 'test' ) == cookieValue ) { alert('You do have a cookie! nThis is what we said when we gave it to you: n"'+cookieValue+'"'); } else { alert('The cookie is a lie!'); } }function deleteCookie() {if ( Get_Cookie( 'test' ) == cookieValue ) {alert("There is a cookie to eat.");Delete_Cookie('test', '/', '');( Get_Cookie( 'test' ) ) ? alert( Get_Cookie('test')) : alert( 'We have eaten the cookie.');}else { alert("There is no cookie for us to eat!");} } </script> <a onclick="setCookie();">Take Cookie</a> <br/> <br/> <a onclick="checkCookie();">Check Cookie</a> <br/> <br/> <a onclick="deleteCookie();">Eat Cookie</a> </body></html> Thanks for any help! Edited August 10, 2014 by DarkxPunk Link to comment Share on other sites More sharing options...
davej Posted August 11, 2014 Share Posted August 11, 2014 I noticed that the cookie example I created some time ago and also your code uses escape() -- which is now depreciated. I think encodeURI() should be used instead. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now