60 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Sessions
							 | 
						|||
| 
								 | 
							
								localeTitle: сессии
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## сессии
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Сессии - это функция PHP, которая позволяет хранить сервер данных на стороне пользователя. Когда сеанс настроен, устанавливается cookie-браузер браузера, который идентифицирует пользователя на PHP, поэтому PHP знает, к каким переменным на стороне сервера требуется доступ.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Начало сеанса
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								На каждой странице, к которой вы хотите получить доступ к сеансу, необходимо запустить (или загрузить) сеанс. Для этого запустите функцию `session_start()` которая загружает систему сеансов PHP.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```PHP
							 | 
						|||
| 
								 | 
							
								<?php 
							 | 
						|||
| 
								 | 
							
								 session_start(); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Обратите внимание, что при использовании сеансов на основе файлов cookie необходимо вызывать session\_start () перед выводом чего-либо в браузер. все остальное приведет к ошибке.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Доступ и установка данных на сеансе
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Переменная `$_SESSION['key']` - это особый тип массива (с помощью cookie браузера для определения того, для какой сессии требуется доступ).
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								В приведенном ниже примере вы видите, что тема выбора пользователя выбрана для темы номер один.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```PHP
							 | 
						|||
| 
								 | 
							
								<?php 
							 | 
						|||
| 
								 | 
							
								 session_start(); 
							 | 
						|||
| 
								 | 
							
								 $_SESSION['themechoice'] = 1; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Доступ к переменной сеанса аналогичен настройке. Просто включите переменную, в которой она должна быть доступна. Например, повторите это, как показано в приведенном ниже примере кода.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```PHP
							 | 
						|||
| 
								 | 
							
								<?php 
							 | 
						|||
| 
								 | 
							
								 session_start(); 
							 | 
						|||
| 
								 | 
							
								 echo $_SESSION['themechoice']; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Удаление сеанса
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Чтобы удалить сеанс из системы, запустите следующий код PHP. Он отключит переменные сеанса и удалит их из системы.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```PHP
							 | 
						|||
| 
								 | 
							
								<?php 
							 | 
						|||
| 
								 | 
							
								 session_unset(); 
							 | 
						|||
| 
								 | 
							
								 session_destroy(); 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Сессии временны
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Важно не рассматривать сеанс как постоянное хранилище. Они время от времени очищаются разработчиком, когда приложение перемещается на новый хост-сервер, самим приложением (например, кнопкой выхода) и даже во время обслуживания сервера. Для долговременного хранения данных обязательно используйте базу данных.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Безопасность
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Последнее, но не менее важное, важно безопасно использовать сеансы php. Прочтите нашу статью о [приобретении идентификатора сеанса](/php/security/session-identifier-acquirement) и [захвате](/php/security/session-identifier-acquirement) [сеанса](/php/security/session-hijacking) для получения дополнительной информации.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Дополнительная информация:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   [Руководство пользователя php.net](https://secure.php.net/manual/en/book.session.php)
							 |