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.
							 |