nezbo Posted January 7, 2008 Share Posted January 7, 2008 Hi all Is there any way to set a cookie without using the header in php. i have found this using javascript, but i am even worse with javascript than i am php. <script type="text/javascript"> // this deletes the cookie when called function 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"; } // this function gets the cookie, if it exists // don't use this, it's weak and does not handle some cases // correctly, this is just to maintain legacy information 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 ) ); } // this fixes an issue with the old method, ambiguous values // with this test document.cookie.indexOf( name + "=" ); 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 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; } } 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" : "" ); } </script> <!-- bellow is the script for creating a cookie. <script type="text/javascript"> // remember, these are the possible parameters for Set_Cookie: // name, value, expires, path, domain, secure Set_Cookie( 'test', 'it works', '', '/', '', '' ); if ( Get_Cookie( 'test' ) ) alert( Get_Cookie('test')); // and these are the parameters for Delete_Cookie: // name, path, domain // make sure you use the same parameters in Set and Delete Cookie. Delete_Cookie('test', '/', ''); ( Get_Cookie( 'test' ) ) ? alert( Get_Cookie('test')) : alert( 'it is gone'); </script> --> If i was to use this code i would need to recall the cookie in php, or transfair a var from javascript to php. any ideas? Quote Link to comment https://forums.phpfreaks.com/topic/84863-php-and-cookies/ Share on other sites More sharing options...
trq Posted January 7, 2008 Share Posted January 7, 2008 Is there any way to set a cookie without using the header in php. No. In order for anything to be sent to the client a header must be sent. Quote Link to comment https://forums.phpfreaks.com/topic/84863-php-and-cookies/#findComment-432619 Share on other sites More sharing options...
nezbo Posted January 7, 2008 Author Share Posted January 7, 2008 ok cheers. how easy is it to get a javascript var in to a php var $***** ? Quote Link to comment https://forums.phpfreaks.com/topic/84863-php-and-cookies/#findComment-432627 Share on other sites More sharing options...
trq Posted January 7, 2008 Share Posted January 7, 2008 You woud need to make javascript send the variable within a request back to the server. What exactly are you wanting to do? Quote Link to comment https://forums.phpfreaks.com/topic/84863-php-and-cookies/#findComment-432630 Share on other sites More sharing options...
nezbo Posted January 7, 2008 Author Share Posted January 7, 2008 i want to try and keep some info so that i dont need to pass vars around in the url's, i think i am going to same the settings on the datadase so i can keep the info. unless there is any one that knows a better way to save info, e.g. i am puting a link on the page that tells the user the there are 10, 20, 30, 40, or 50 items per page. You woud need to make javascript send the variable within a request back to the server. What exactly are you wanting to do? Quote Link to comment https://forums.phpfreaks.com/topic/84863-php-and-cookies/#findComment-432647 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.