- How to create and read value from cookie ?
- JavaScript Cookies
- Create a Cookie with JavaScript
- Read a Cookie with JavaScript
- Change a Cookie with JavaScript
- Delete a Cookie with JavaScript
- The Cookie String
- JavaScript Cookie Example
- A Function to Set a Cookie
- Example
- A Function to Get a Cookie
- Example
- A Function to Check a Cookie
- Example
- All Together Now
- Example
How to create and read value from cookie ?
The web servers host the website. The client-server makes a request for data from the webserver and the webserver fetches the required pages and responds to the client by sending the requested pages. The web server communicates with the client-server using HTTP (HyperText Transfer Protocol). HTTP is a stateless protocol which means the server needs not to retain the user information once the transaction ends and the connection is closed. The web browser is an example of a client-server which communicates with the web server using HTTP. HTTP prevents long engagement of the client with the webserver and the connection is closed automatically once the request is serviced. But often it is required to store the user information for future references. One of the most common uses of cookies is for authentication. Cookies serve the purpose of retaining user information even when the connection is lost. Cookies are data, stored in text files, on the computer.
Cookies comprise of five variable fields:
- Expires:Specifies when the cookie will expire. If left empty the cookie expires immediately when the connection is lost.
- Domain: Specifies the domain name of the website.
- Name=Value: Cookies are stored in the form of name-value pairs.
- Path: Specifies the webpage or directory that sets the cookie.
- Secure: Specifies whether the cookie can be retrieved by any server (secure or non-secure).
However, cookies can store only a small amount of data like userID or sessionID. Clearing the cookies will logout the user of every site that it had logged in. HTTP can be made stateful by using cookies. Stateful web applications store the information from the previous requests and can use it for serving future requests.
Working Principle: When the client or web browser establishes a connection with the webserver, the webserver sends some data to the browser in the form of a cookie. The browser may accept or reject the cookie. If the browser accepts it, the cookie gets stored in the hard disk of the client device. The CGI scripts on the server can read and write cookie values that are stored on the client, so when the client visits the same website again it retrieves the cookie data from the browser. JavaScript can be used to manipulate cookies using the cookie property of the Document object. JavaScript can read, create, modify, and delete the cookies for the current web page. The code below demonstrates how JavaScript can be used to create and read a value from the cookie.
Create cookie using JavaScript: This function creates a cookie using the field-name, field-value, and expiry date. The path is left blank such that it applies to the current webpage. However, we can specify any other webpage or directory name.
JavaScript Cookies
When a browser requests a web page from a server, cookies belonging to the page are added to the request. This way the server gets the necessary data to «remember» information about users.
None of the examples below will work if your browser has local cookies support turned off.
Create a Cookie with JavaScript
JavaScript can create, read, and delete cookies with the document.cookie property.
With JavaScript, a cookie can be created like this:
You can also add an expiry date (in UTC time). By default, the cookie is deleted when the browser is closed:
With a path parameter, you can tell the browser what path the cookie belongs to. By default, the cookie belongs to the current page.
Read a Cookie with JavaScript
With JavaScript, cookies can be read like this:
document.cookie will return all cookies in one string much like: cookie1=value; cookie2=value; cookie3=value;
Change a Cookie with JavaScript
With JavaScript, you can change a cookie the same way as you create it:
The old cookie is overwritten.
Delete a Cookie with JavaScript
Deleting a cookie is very simple.
You don’t have to specify a cookie value when you delete a cookie.
Just set the expires parameter to a past date:
You should define the cookie path to ensure that you delete the right cookie.
Some browsers will not let you delete a cookie if you don’t specify the path.
The Cookie String
The document.cookie property looks like a normal text string. But it is not.
Even if you write a whole cookie string to document.cookie, when you read it out again, you can only see the name-value pair of it.
If you set a new cookie, older cookies are not overwritten. The new cookie is added to document.cookie, so if you read document.cookie again you will get something like:
cookie1 = value; cookie2 = value;
Display All Cookies Create Cookie 1 Create Cookie 2 Delete Cookie 1 Delete Cookie 2
If you want to find the value of one specified cookie, you must write a JavaScript function that searches for the cookie value in the cookie string.
JavaScript Cookie Example
In the example to follow, we will create a cookie that stores the name of a visitor.
The first time a visitor arrives to the web page, he/she will be asked to fill in his/her name. The name is then stored in a cookie.
The next time the visitor arrives at the same page, he/she will get a welcome message.
For the example we will create 3 JavaScript functions:
- A function to set a cookie value
- A function to get a cookie value
- A function to check a cookie value
A Function to Set a Cookie
First, we create a function that stores the name of the visitor in a cookie variable:
Example
function setCookie(cname, cvalue, exdays) <
const d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
let expires = «expires=»+ d.toUTCString();
document.cookie = cname + «=» + cvalue + «;» + expires + «;path=/»;
>
Example explained:
The parameters of the function above are the name of the cookie (cname), the value of the cookie (cvalue), and the number of days until the cookie should expire (exdays).
The function sets a cookie by adding together the cookiename, the cookie value, and the expires string.
A Function to Get a Cookie
Then, we create a function that returns the value of a specified cookie:
Example
function getCookie(cname) <
let name = cname + «=»;
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(‘;’);
for(let i = 0; i let c = ca[i];
while (c.charAt(0) == ‘ ‘) <
c = c.substring(1);
>
if (c.indexOf(name) == 0) <
return c.substring(name.length, c.length);
>
>
return «»;
>
Function explained:
Take the cookiename as parameter (cname).
Create a variable (name) with the text to search for (cname + «=»).
Decode the cookie string, to handle cookies with special characters, e.g. ‘$’
Split document.cookie on semicolons into an array called ca (ca = decodedCookie.split(‘;’)).
If the cookie is found (c.indexOf(name) == 0), return the value of the cookie (c.substring(name.length, c.length).
If the cookie is not found, return «».
A Function to Check a Cookie
Last, we create the function that checks if a cookie is set.
If the cookie is set it will display a greeting.
If the cookie is not set, it will display a prompt box, asking for the name of the user, and stores the username cookie for 365 days, by calling the setCookie function:
Example
function checkCookie() <
let username = getCookie(«username»);
if (username != «») <
alert(«Welcome again » + username);
> else <
username = prompt(«Please enter your name:», «»);
if (username != «» && username != null) <
setCookie(«username», username, 365);
>
>
>
All Together Now
Example
function setCookie(cname, cvalue, exdays) <
const d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
let expires = «expires=»+d.toUTCString();
document.cookie = cname + «=» + cvalue + «;» + expires + «;path=/»;
>
function getCookie(cname) let name = cname + «=»;
let ca = document.cookie.split(‘;’);
for(let i = 0; i < ca.length; i++) let c = ca[i];
while (c.charAt(0) == ‘ ‘) c = c.substring(1);
>
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
>
>
return «»;
>
function checkCookie() let user = getCookie(«username»);
if (user != «») alert(«Welcome again » + user);
> else user = prompt(«Please enter your name:», «»);
if (user != «» && user != null) setCookie(«username», user, 365);
>
>
>
The example above runs the checkCookie() function when the page loads.