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? 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. 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 $***** ? 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? 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? Link to comment https://forums.phpfreaks.com/topic/84863-php-and-cookies/#findComment-432647 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.