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'用户'已删除。 |