117 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: PHP Cookies
 | 
						|
---
 | 
						|
 | 
						|
# PHP COOKIES
 | 
						|
 | 
						|
## What is a Cookie?
 | 
						|
 | 
						|
A cookie is often used to identify a user. It is a small file that the server embeds on the user's computer.
 | 
						|
Each time the same computer requests a page with a browser, it will send the cookie too.  
 | 
						|
Cookies were designed to be a reliable mechanism to remember stateful information or to record the user's browsing activity.  
 | 
						|
They can also be used to remember arbitrary pieces of information that the user previously entered into form fields such as names, addresses, passwords, etc.
 | 
						|
 | 
						|
## Creating Cookies with PHP
 | 
						|
 | 
						|
With PHP, you can both create and retrieve cookie values.
 | 
						|
A cookie is created with the setcookie() function.
 | 
						|
 | 
						|
`setcookie(name, value, expire, path, domain, secure, httponly);`  
 | 
						|
 | 
						|
Only the _name_ parameter is a required parameter. All other parameters are optional.
 | 
						|
 | 
						|
 | 
						|
## PHP Create/Retrieve a Cookie
 | 
						|
 | 
						|
The following example creates a cookie named "user" with the value "John Doe".  
 | 
						|
The cookie will expire after 30 days (86400 * 30).  
 | 
						|
The "/" means that the cookie is available in entire website (else, you can select the directory you prefer).  
 | 
						|
We then retrieve the value of the cookie "user" (using the global variable $_COOKIE).  
 | 
						|
We also use the isset() function to find out if the cookie is set:
 | 
						|
 | 
						|
**Example:**
 | 
						|
```
 | 
						|
<?php
 | 
						|
$cookie_name = "user";
 | 
						|
$cookie_value = "John Doe";
 | 
						|
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");  // 86400 = 1 day
 | 
						|
?>
 | 
						|
<html>
 | 
						|
<body>
 | 
						|
 | 
						|
<?php
 | 
						|
if(!isset($_COOKIE[$cookie_name])) {
 | 
						|
    echo "Cookie named '" . $cookie_name . "' is not set!";
 | 
						|
} else {
 | 
						|
    echo "Cookie '" . $cookie_name . "' is set!<br>";
 | 
						|
    echo "Value is: " . $_COOKIE[$cookie_name];
 | 
						|
}
 | 
						|
?>
 | 
						|
</body>
 | 
						|
</html>
 | 
						|
```
 | 
						|
 | 
						|
**Note:** The setcookie() function must appear **BEFORE** the <html> tag.
 | 
						|
 | 
						|
 | 
						|
Output:  
 | 
						|
Cookie 'user' is set!  
 | 
						|
Value is: John Doe
 | 
						|
 | 
						|
 | 
						|
## PHP Modify a Cookie Value
 | 
						|
 | 
						|
To modify a cookie, just set the value again using the setcookie() function:
 | 
						|
 | 
						|
**Example:**
 | 
						|
```
 | 
						|
<?php
 | 
						|
$cookie_name = "user";
 | 
						|
$cookie_value = "Jane Porter";
 | 
						|
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
 | 
						|
?>
 | 
						|
<html>
 | 
						|
<body>
 | 
						|
 | 
						|
<?php
 | 
						|
if(!isset($_COOKIE[$cookie_name])) {
 | 
						|
    echo "Cookie named '" . $cookie_name . "' is not set!";
 | 
						|
} else {
 | 
						|
    echo "Cookie '" . $cookie_name . "' is set!<br>";
 | 
						|
    echo "Value is: " . $_COOKIE[$cookie_name];
 | 
						|
}
 | 
						|
?>
 | 
						|
 | 
						|
</body>
 | 
						|
</html>
 | 
						|
```
 | 
						|
 | 
						|
Output:  
 | 
						|
Cookie 'user' is set!  
 | 
						|
Value is: Alex Porter
 | 
						|
 | 
						|
 | 
						|
## PHP Delete a Cookie
 | 
						|
 | 
						|
To delete a cookie, use the setcookie() function with an expiration date in the past:
 | 
						|
 | 
						|
**Example:**
 | 
						|
```
 | 
						|
<?php
 | 
						|
// set the expiration date to one hour ago
 | 
						|
setcookie("user", "", time() - 3600);
 | 
						|
?>
 | 
						|
<html>
 | 
						|
<body>
 | 
						|
 | 
						|
<?php
 | 
						|
echo "Cookie 'user' is deleted.";
 | 
						|
?>
 | 
						|
 | 
						|
</body>
 | 
						|
</html>
 | 
						|
```
 | 
						|
 | 
						|
Output:  
 | 
						|
Cookie 'user' is deleted.
 |