110 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			110 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: PHP Cookies
							 | 
						|||
| 
								 | 
							
								localeTitle: PHP-файлы cookie
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								# PHP-куки
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## Что такое Cookie?
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Файл cookie часто используется для идентификации пользователя. Это небольшой файл, который сервер встраивает в компьютер пользователя. Каждый раз, когда тот же компьютер запрашивает страницу с браузером, он отправляет cookie тоже.  
							 | 
						|||
| 
								 | 
							
								Куки-файлы были разработаны, чтобы быть надежным механизмом для сохранения информации о состоянии или записи активности пользователя.  
							 | 
						|||
| 
								 | 
							
								Они также могут использоваться для запоминания произвольной информации, которую пользователь ранее вводил в поля формы, такие как имена, адреса, пароли и т. Д.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## Создание файлов cookie с PHP
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								С помощью PHP вы можете создавать и извлекать значения файлов cookie. Файл cookie создается с помощью функции setcookie ().
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								`setcookie(name, value, expire, path, domain, secure, httponly);`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Обязательным параметром является только параметр _name_ . Все остальные параметры являются необязательными.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## PHP Создание / извлечение файлов cookie
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								В следующем примере создается файл cookie с именем «user» со значением «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 'user' установлен!  
							 | 
						|||
| 
								 | 
							
								Значение: 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 'user' установлен!  
							 | 
						|||
| 
								 | 
							
								Значение: Алекс Портер
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 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 пользователя cookie удален.
							 |