Jump to content

Recommended Posts

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

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

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.