Jump to content

php and cookies


nezbo

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.