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