The PHP superglobal $_COOKIE stores the variables passed to the current PHP script along with the HTTP request in the form of cookies. $HTTP_COOKIE_VARS also contains the same information, but it is not a superglobal, and it has now been deprecated.
What is a Cookie?
Cookies are text files stored by a server on the client computer and they are kept for tracking purpose. PHP transparently supports HTTP cookies. Cookies are usually set in an HTTP header. JavaScript can also sets a cookie directly on a browser.
The server script sends a set of cookies to the browser. It stores this information on the local machine for future use. Next time, when the browser sends any request to the web server, it sends those cookies information to the server and the server uses that information to identify the user.
The setcookie() Function
PHP provides the setcookie function to create a cookie object to be sent to the client along with the HTTP response.
setcookie(name, value, expire, path, domain, security);
Parameters
- Name − Name of the cookie stored.
- Value − This sets the value of the named variable.
- Expiry − This specifes a future time in seconds since 00:00:00 GMT on 1st Jan 1970.
- Path − Directories for which the cookie is valid.
- Domain − Specifies the domain name in very large domains.
- Security − 1 for HTTPS. Default 0 for regular HTTP.
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
How to Set Cookies
Take a look at the following example. This script sets a cookie named username if it is not already set.
Example
<?php
if (isset($_COOKIE['username'])) {
echo "<h2>Cookie username already set: " . $_COOKIE['username'] . "</h2>";
} else {
setcookie("username", "Mohan Kumar");
echo "<h2>Cookie username is now set.</h2>";
}
?>
Run this script from the document root of the Apache server. You should see this message as the output −
Cookie username is now set
If this script is re-executed, the cookie is now already set.
Cookie username already set: Mohan Kumar
Example
To retrieve cookies on subsequent visit of client −
<?php
$arr=$_COOKIE;
foreach ($arr as $key=>$val);
echo "<h2>$key => $val </h2>";
?>
The browser will display the following output −
Username => Mohan Kumar
How to Remove Cookies
To delete a cookie, set the cookie with a date that has already expired, so that the browser triggers the cookie removal mechanism.
<?php
setcookie("username", "", time() - 3600);
echo "<h2>Cookie username is now removed</h2>";
?>
The browser will now show the following output −
Cookie username is now removed
Setting Cookies Using the Array Notation
You may also set the array cookies by using the array notation in the cookie name.
setcookie("user[three]","Guest");setcookie("user[two]","user");setcookie("user[one]","admin");
If the cookie name contains dots (.), then PHP replaces them with underscores (_).
Leave a Reply