This PHP tutorial will help you learn about PHP cookies and how to create, update, and delete cookies when you no longer need them. So, let us get started.
It is a small piece of information that a web server stores as a file in the user's browser. After a cookie is created, it is sent as header information with every HTTP request to the web server.
A cookie can be used to save any data, but it should not exceed 1K(1024 bytes) in size.
Before we move on to creating, updating, and deleting cookies, let us learn a few real-world uses of cookies.
Hope you have an idea about how you can use cookies in your web application.
Cookies are of two types. These are:
In PHP, the setcookie() function can be used to create/set a cookie.
The syntax for the function is below,
setcookie(name, value, expire, path, domain, secure)
The first argument, which defines the cookie's name, is mandatory; the rest are optional arguments. First, let's comprehend what are the available arguments that can be supplied to the setcookie() function for setting a cookie.
Argument | What is it for? |
---|---|
name | It is used for specifying the cookie name. It is a mandatory argument. Cookie Name must be a string. |
value | It is used for storing any value in the cookie. Generally, it is saved as a pair with a name. For instance, userid is the name, and 7007 is the value, the userid for any user. |
expire | It is used for setting the expiration time for a cookie. cookie, and it will expire when the user closes the browser. |
path | It is used for setting a web URL in the cookie. If it is set, then the cookie will be accessible only from that URL. |
domain | It refers to your web application's domain. You can use it to limit access of cookies for sub-domains. For instance, if the domain value is set as |
secure | If you set this value to 1, then the cookie will be available and is sent only over an HTTPS connection. |
So, in case you want to create a cookie for storing the user's name who visited your website, also want to set an expiration time of a week, then you can do it as follows,
<?php
setcookie("username", "Jarvish", time()+60*60*24*7);
?>
You can use the $_COOKIE global variable to access a stored cookie, and the isset() methods can be used to check whether the cookie is set or not.
Let's take an example in which we will set a cookie and then retrieve the cookie for showing its value on the HTML page.
<?php
// set the cookie
setcookie("username", "Jarvish", time()+60*60*24*7);
?>
<html>
<body>
<?php
// check if the cookie exists
if(isset($_COOKIE["username"]))
{
echo "Cookie set with value: ".$_COOKIE["username"];
}
else
{
echo "cookie not set!";
}
?>
</body>
</html>
So, you can access the cookie by providing the cookie's name inside the square brackets with the global variable $_COOKIE[].
Note: You should place the setcookie() function before the starting HTML tag(<html>).
You can simply set the cookie again for updating/modifying a cookie. For example, updating the username stored in the cookie that was created above can be done by using setcookie() method again,
<?php
// updating the cookie
setcookie("username", "Justin", time()+60*60*24*7);
?>
<html>
<body>
<?php
// check if the cookie exists
if(isset($_COOKIE["username"]))
{
echo "Cookie set with value: ".$_COOKIE["username"];
}
else
{
echo "cookie not set!";
}
?>
</body>
</html>
We just updated the value of the username cookie from jarvish to Justin.
You have to expire a cookie for deleting/removing a cookie. You can do it by updating the cookie utilizing the setcookie() function with the expiration date in the past.
<?php
// updating the cookie
setcookie("username", "jarvish", time() - 3600);
?>
<html>
<body>
<?php
echo "cookie username is deleted!";
?>
</body>
</html>