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 удален. |