postgresql debian | centos vs debian | VK | php time | auto post on facebook
 


 

How to Create, Read, Update and Delete a Cookie with PHP or Javascript


How to Create, Read, Update and Delete a Cookie with PHP or Javascript

Image source: Irrational Cookies



http is a stateless protocol. A way to remember information from page to page is to use cookies. According to Wikipedia:

A cookie, also known as an HTTP cookie, web cookie, or browser cookie, is a small piece of data sent from a website and stored in a user's web browser while the user is browsing that website. Every time the user loads the website, the browser sends the cookie back to the server to notify the website of the user's previous activity. Cookies were designed to be a reliable mechanism for websites to remember stateful information (such as items in a shopping cart) or to record the user's browsing activity (including clicking particular buttons, logging in, or recording which pages were visited by the user as far back as months or years ago).

In this tutorial you will find information about creating and managing cookies with PHP or Javascript. Demo is available in each case.

Create cookies with PHP

(REMARK: for a visual way to display the following actions, see below "Manage cookies in various web browsers").

Create

Use setcookie to create a cookie with PHP. This cookie will expire after 30 days. Using "/", cookie is available in all website (otherwise, select the directory you prefer).

$cookie_name = 'pontikis_net_php_cookie';
$cookie_value = 'test_cookie_set_with_php';
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), '/'); // 86400 = 1 day

Click here for demo It will set this cookie.

Read

Use $_COOKIE to retrieve a cookie with PHP. Once the cookies have been set, they can be accessed on the next page load.

$cookie_name = 'pontikis_net_php_cookie';
if(!isset($_COOKIE[$cookie_name])) {
	print 'Cookie with name "' . $cookie_name . '" does not exist...';
} else {
	print 'Cookie with name "' . $cookie_name . '" value is: ' . $_COOKIE[$cookie_name];
}

Click here for demo

Update

Actually, there is not a way to update a cookie. Just set (again) this cookie using setcookie.

$cookie_name = 'pontikis_net_php_cookie';
$cookie_value = 'test_cookie_updated_with_php';
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), '/'); // 86400 = 1 day

Click here for demo It will update this cookie value.

Delete

Actually, there is not a way to directly delete a cookie. Just use setcookie with expiration date in the past, to trigger the removal mechanism in your browser.

$cookie_name = 'pontikis_net_php_cookie';
unset($_COOKIE[$cookie_name]);
// empty value and expiration one hour before
$res = setcookie($cookie_name, '', time() - 3600);

Click here for demo It will delete this cookie.

Create cookies with Javascript

(REMARK: for a visual way to display the following actions, see below "Manage cookies in various web browsers").

Create

Using document.cookie with following format:

document.cookie="name_here=value_here; expires=date_in_UTC_here; path=path_here";

You many use a function like this one:

/**
 * Create cookie with javascript
 *
 * @param {string} name cookie name
 * @param {string} value cookie value
 * @param {int} days2expire
 * @param {string} path
 */
function create_cookie(name, value, days2expire, path) {
	var date = new Date();
	date.setTime(date.getTime() + (days2expire * 24 * 60 * 60 * 1000));
	var expires = date.toUTCString();
	document.cookie = name + '=' + value + ';' +
	                 'expires=' + expires + ';' +
	                 'path=' + path + ';';
}

So, to create a cookie which will expire after 30 days:

var cookie_name = 'pontikis_net_js_cookie';
var cookie_value = 'test_cookie_created_with_javascript';
create_cookie(cookie_name, cookie_value, 30, "/");

Click here for demo It will set this cookie.

Read

document.cookie will return all cookies in one string as following: cookie1=value; cookie2=value; cookie3=value;. So to get the value of a cookie you have to parse this string.

You many use a function like this one:

/**
 * Retrieve cookie with javascript
 *
 * @param {string} name cookie name
 */
function retrieve_cookie(name) {
	var cookie_value = "",
		current_cookie = "",
		name_expr = name + "=",
		all_cookies = document.cookie.split(';'),
		n = all_cookies.length;

	for(var i = 0; i < n; i++) {
		current_cookie = all_cookies[i].trim();
		if(current_cookie.indexOf(name_expr) == 0) {
			cookie_value = current_cookie.substring(name_expr.length, current_cookie.length);
			break;
		}
	}
	return cookie_value;
}

So, to retrieve a cookie with name "pontikis_net_js_cookie":

var cookie_name = 'pontikis_net_js_cookie';
var res = retrieve_cookie(cookie_name);
if(res) {
	alert('Cookie with name "' + cookie_name + '" value is ' + '"' res + '"');
} else {
	alert('Cookie with name "' + cookie_name + '" does not exist...');
}

Click here for demo

Update

Just, recreate cookie with new values:

var cookie_name = 'pontikis_net_js_cookie';
var cookie_name = 'test_cookie_updated_with_javascript';
create_cookie(cookie_name, cookie_value, 60, "/");

Click here for demo It will update this cookie.

Delete

Just give an expiration date in the past. Cookie value not needed.

document.cookie = "pontikis_net_js_cookie=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

You many use a function like this one:

/**
 * Delete cookie with javascript
 *
 * @param {string} name cookie name
 */
function delete_cookie(name) {
	document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
}

So, to delete a cookie:

var cookie_name = 'pontikis_net_js_cookie';
delete_cookie(cookie_name);

Click here for demo It will delete this cookie.

Create cookies with jQuery

There is a jQuery plugin available here https://github.com/carhartl/jquery-cookie.

Manage cookies in various web browsers

REMARK: in the following screenshots, domain is appearing as pontikis.net.lo. This is the local domain I use. If you try the above demos, domain will appear as pontikis.net.

Google Chrome

Go to "Chrome Developer Tools" (Menu → Tools → Developer Tools or press CTRL+SHIFT+I). Go to "Resources" tab and open "Cookies" section

(click to enlarge)

Mozilla Firefox

Go to "Firefox Preferences" (Menu → Tools → Options on Windows or Menu → Edit → Preferences on Linux). Go to "Privacy" tab and press "Show Cookies"

here is the cookie

Another way is to install a Firefox plugin. A nice plugin is "View Cookies". Get it here:

View Cookies Firefox Add-on.

Go to "Page Info" (Menu → Tools → Page info) or just press "CTRL+I". A new tab ("Cookies") is present:

Internet Explorer

It is less convenient to view cookies in Microsoft Internet Explorer

Go to "Internet Options" (Menu → Internet Options). Go to first tab "General". Click "Settings" and then "View files"

Scroll down this list until you see the files labeled as cookies

There is also an utility available (IECookiesView) More details here.

Enable or disable cookies

Every user can disable browser cookies. But, keep in mind that most websites will not work properly without cookies.

Instructions for major browsers are available here:

Check if cookies are enabled

Check if cookies are enabled with PHP

Try to create a test cookie using setcookie and then count $_COOKIE array:

setcookie('check_cookies_enabled', 'test', time() + 3600, '/');
if(count($_COOKIE) > 0) {
	print 'Cookies are enabled!';
} else {
	print 'Cookies are disabled...';
}

Click here for demo

Check if cookies are enabled with Javascript

You can rely to navigator.cookieEnabled, as it supported from all major browsers:

if(navigator.cookieEnabled) {
	alert('Cookies are enabled!');
} else {
	alert('Cookies are disabled...');
}

Click here for demo

Εγγραφή!
Sign-up for our free email newsletter. Get updates when new tutorials and tips are published. You can unsubscribe anytime with a click.

Your comments are welcomed!

This site actively encourages commenting on any post. Comments are not pre-moderated, but this community does not tolerate direct or indirect attacks, name-calling or insults. Please, read terms of use and Comment Policy at privacy policy.

comments powered by Disqus
PHP and Javascript Internationalization using Gettext and Poedit How to Install PostgreSQL 9.3 on Debian 7 Wheezy