110 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: PHP Cookies
 | ||
| localeTitle: PHP Cookies
 | ||
| ---
 | ||
| # PHP COOKIES
 | ||
| 
 | ||
| ## 什么是Cookie?
 | ||
| 
 | ||
| Cookie通常用于标识用户。它是服务器嵌入用户计算机的小文件。 每次同一台计算机通过浏览器请求页面时,它也会发送cookie。  
 | ||
| Cookie旨在成为记住有状态信息或记录用户浏览活动的可靠机制。  
 | ||
| 它们还可用于记住用户先前在表单字段(如姓名,地址,密码等)中输入的任意信息。
 | ||
| 
 | ||
| ## 使用PHP创建Cookie
 | ||
| 
 | ||
| 使用PHP,您可以创建和检索cookie值。 使用setcookie()函数创建cookie。
 | ||
| 
 | ||
| `setcookie(name, value, expire, path, domain, secure, httponly);`
 | ||
| 
 | ||
| 只有_name_参数是必需参数。所有其他参数都是可选的。
 | ||
| 
 | ||
| ## PHP创建/检索Cookie
 | ||
| 
 | ||
| 以下示例创建名为“user”的cookie,其值为“John Doe”。  
 | ||
| Cookie将在30天后(86400 \* 30)过期。  
 | ||
| “/”表示cookie在整个网站中可用(否则,您可以选择您喜欢的目录)。  
 | ||
| 然后我们检索cookie“user”的值(使用全局变量$ \_COOKIE)。  
 | ||
| 我们还使用isset()函数来确定cookie是否已设置:
 | ||
| 
 | ||
| **例:**
 | ||
| ```
 | ||
| <?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> 
 | ||
| ```
 | ||
| 
 | ||
| **注意:** setcookie()函数必须出现**在。之前** 标签。
 | ||
| 
 | ||
| 输出:  
 | ||
| Cookie'用户'已设置!  
 | ||
| 价值是:John Doe
 | ||
| 
 | ||
| ## PHP修改Cookie值
 | ||
| 
 | ||
| 要修改cookie,只需使用setcookie()函数再次设置该值:
 | ||
| 
 | ||
| **例:**
 | ||
| ```
 | ||
| <?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> 
 | ||
| ```
 | ||
| 
 | ||
| 输出:  
 | ||
| Cookie'用户'已设置!  
 | ||
| 价值观是:Alex Porter
 | ||
| 
 | ||
| ## PHP删除Cookie
 | ||
| 
 | ||
| 要删除cookie,请使用过去有过期日期的setcookie()函数:
 | ||
| 
 | ||
| **例:**
 | ||
| ```
 | ||
| <?php 
 | ||
|  // set the expiration date to one hour ago 
 | ||
|  setcookie("user", "", time() - 3600); 
 | ||
|  ?> 
 | ||
|  <html> 
 | ||
|  <body> 
 | ||
|  
 | ||
|  <?php 
 | ||
|  echo "Cookie 'user' is deleted."; 
 | ||
|  ?> 
 | ||
|  
 | ||
|  </body> 
 | ||
|  </html> 
 | ||
| ```
 | ||
| 
 | ||
| 输出:  
 | ||
| Cookie'用户'已删除。 |