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