ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

PHP Учебник

PHP СТАРТ PHP Интро PHP Установка PHP Синтаксис PHP Комментарии PHP Переменные PHP Echo / Print PHP Типы данных PHP Строки PHP Числа PHP Математика PHP Константы PHP Операторы PHP If...Else...Elseif PHP Switch PHP Циклы PHP Функции PHP Массивы PHP Суперглобальные PHP RegEx

PHP Формы

PHP Обработка формы PHP Проверка формы PHP Обязательные поля формы PHP Форма URL/E-mail PHP Заполнение формы

PHP Расширенный

PHP Дата и время PHP Подключение файлов PHP Обработка файлов PHP Файл открыть/читать PHP Файл создать/записать PHP Файл Загрузить PHP Куки PHP Сессии PHP Фильтры PHP Расширенные фильтры PHP Callback функции PHP JSON PHP Исключения

PHP ООП

PHP Что такое ООП PHP классы/объекты PHP Конструктор PHP Деструктор PHP Модификаторы доступа PHP Наследование PHP Константы PHP Абстрактные классы PHP Интерфейсы PHP Трейты PHP Статические методы PHP Статические свойства PHP Пространства имён PHP Итерации

MySQL База данных

MySQL База данных MySQL Подключение MySQL Создать БД MySQL Создать таблицы MySQL Вставить данные MySQL Получить последний ID MySQL Вставить несколько записей MySQL Подготовленные инструкции MySQL Выбрать данные MySQL Where MySQL Order By MySQL Удаление данных MySQL Обновление данных MySQL Ограничение данных

PHP XML

PHP XML Парсеры PHP SimpleXML Парсер PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Интро AJAX PHP AJAX База данных AJAX XML AJAX Живой поиск AJAX Опрос

PHP Примеры

PHP Примеры PHP Компилятор PHP Викторина PHP Упражнения PHP Сертификат

PHP Справочник

PHP Обзор PHP Массив PHP Календарь PHP Дата PHP Каталог PHP Ошибка PHP Исключение PHP Файловая система PHP Фильтр PHP FTP PHP JSON PHP Ключевые слова PHP Libxml PHP Почта PHP Математика PHP Разное PHP MySQLi PHP Сеть PHP Output Control PHP RegEx PHP SimpleXML PHP Поток PHP Строка PHP Обработка переменных PHP XML Парсер PHP Zip PHP Часовые пояса

PHP. Уроки для начинающих

PHP Сессии


Сессия - это способ хранения информации (в переменных) для использования на нескольких страницах.

В отличие от куки, информация не хранится на компьютере пользователя.


Что такое PHP сессия?

Когда вы работаете с приложением, вы открываете его, вносите некоторые изменения, а затем закрываете его. Это очень похоже на сессию. Компьютер знает, кто вы. Он знает, когда вы запускаете приложение и когда вы заканчиваете работать с ним. Но в Интернете есть одна проблема: веб-сервер не знает, кто вы и чем занимаетесь, потому что HTTP-адрес не поддерживает состояние.

Переменные сессии решают эту проблему путем хранения пользовательской информации, которая будет использоваться на нескольких страницах (например, имя пользователя, любимый цвет и т.д.). По умолчанию переменные сессии сохраняются до тех пор, пока пользователь не закроет браузер.

Т.о., переменные сессии содержат информацию об одном пользователе и доступны для всех страниц в одном приложении.

Совет: Если вам нужно постоянное хранилище, вы можете сохранить данные в базе данных.


Старт PHP сессии

Сессия запускается с помощью функии session_start().

Переменные сессии устанавливаются с помощью глобальной PHP переменной: $_SESSION.

Теперь давайте создадим новую страницу с именем "demo_session1.html". На этой странице мы начинаем новую сессию PHP и устанавливаем некоторые переменные сессии:

Пример

<?php
// Старт сессии
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Установить переменные сессии
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Переменные сессии установлены.";
?>

</body>
</html>
Запустить пример »

Примечание: Функция session_start() должна находиться в самом начале документа. Перед любыми тегами HTML.


Получить значения переменной PHP сессии

Далее мы создаем еще одну страницу под названием "demo_session2.html". На этой странице мы получим доступ к информации о сессии, которую мы установили на первой странице ("demo_session1.html").

Обратите внимание, что переменные сессии не передаются по отдельности каждой новой странице, а извлекаются из сессии, которую мы открываем в начале каждой страницы (session_start()).

Также обратите внимание, что все значения переменных сессии хранятся в глобальной переменной $_SESSION:

Пример

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo переменных сессии, которые были установлены на предыдущей странице
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>
Запустить пример »

Другой способ показать все значения переменных сессии для пользовательской сессии - запустить следующий код:

Пример

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>
Запустить пример »

Как это работает? Как он узнал, что это я?

Большинство сессий устанавливают на компьютере пользователя ключ пользователя, который выглядит примерно так: 765487cf34ert8dede5a562e4f3a7e12. Затем, когда сессия открывается на другой странице, он сканирует компьютер на предмет наличия ключа пользователя. Если есть совпадение, он получает доступ к этой сессии, если нет, он начинает новую сессию.


Изменить переменную PHP сессии

Чтобы изменить переменную сессии, просто перезапишите её:

Пример

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// чтобы изменить переменную сессии, просто перезапишите её
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>
Запустить пример »

Уничтожить PHP сессию

Чтобы удалить все глобальные переменные сессии и уничтожить сессию, используйте session_unset() и session_destroy():

Пример

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// удалить все переменные сессии
session_unset();

// уничтожить сессию
session_destroy();
?>

</body>
</html>
Запустить пример »

PHP Упражнения

Проверьте себя с помощью упражнений

Упражнение:

Создайте переменную сессии с именем "favcolor".

session_start();
["favcolor"] = "green";