PHP5 Проведение сессий
Сессия - это способ хранения информации в переменных, для использования на нескольких страницах.
В отличие от файлов cookie, информация не хранится на компьютере пользователя.
PHP Что такое сессии?
При работе с приложением Вы открываете его, вносите некоторые изменения и затем вы закрываете его. Это похоже на сеанс. Компьютер знает, кто ты. Он знает, когда вы запустите приложение и когда вы закончите. Но в интернете есть одна проблема: веб сервер не знает, кто Вы и что делаете, потому что HTTP адрес не поддерживает состояние.
Переменные $_SESSION
решают эту проблему, сохраняя информацию о пользователе
для использования на нескольких страницах (например: имя пользователя, любимый цвет и т.д.).
По умолчанию сессия длится до закрытия браузера пользователем.
Таким образом, переменные $_SESSION
содержат информацию
об одном пользователе и доступны для всех страниц в одном приложении.
Совет: Если вам нужно постоянного хранения, Вы можете хранить данные в базе данных.
PHP Запуск сессии
Сессия запускается с помощью функции session_start()
.
Сессии задаются с помощью глобальной переменной PHP: $_SESSION
.
Теперь давайте создадим новую страницу под названием "demo_session1.php". На этой странице начинаем новый PHP сеанс и установить некоторые переменные сессии:
Пример
<?php
// Запуск сессии
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Установить переменные сессии
$_SESSION["favcolor"] = "зеленый";
$_SESSION["favanimal"] = "кот";
echo "Установлены переменные сессии.";
?>
</body>
</html>
Смотреть код »
Примечание: Функция session_start()
, должна быть всегда первой, в вашем документе.
Перед всеми тегами HTML.
PHP Получить значения переменных сессий
Далее, создаем другую страницу под названием "demo_session2.php". На этой странице будет доступ к информации о сессии, которую мы устанавили на первой странице "demo_session1.php".
Обратите внимание, что переменные сессии не передаются отдельно на каждую новую страницу,
вместо этого они извлекаются из сессии, который мы открываем в начале каждой странице session_start()
.
Также обратите внимание, что все значения переменных сессий, хранятся в глобальной переменной $_SESSION
:
Пример
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Выводим переменные сессии, которые были установлены на предыдущей странице
echo "Любимый цвет " . $_SESSION["favcolor"] . ".<br>";
echo "Любимое животное " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Смотреть код »
Другой способ показать все значения переменных $_SESSION
для сессий пользователя - следующий код:
Пример
<?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"] = "желтый";
print_r($_SESSION);
?>
</body>
</html>
Смотреть код »
PHP Удалить сессии
Чтобы удалить все глобальные переменные session и уничтожить сессии, используйте
session_unset()
и session_destroy()
:
Пример
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// удалить все переменные сессии
session_unset();
// уничтожить сессии
session_destroy();
?>
</body>
</html>
Смотреть код »