PHP 5 Sessions
Сеанс — это способ хранения информации (в переменных) для использования на нескольких страницах.
В отличие от файла cookie, информация не хранится на компьютере пользователя.
Что такое сеанс PHP?
При работе с приложением вы открываете его, делаете некоторые изменения, а затем закрываете его. Это очень похоже на сессию. Компьютер знает, кто вы. Оно знает когда вы начинаете применение и когда вы закончите. Но в Интернете есть одна проблема: веб-сервер не знает, кто вы и что вы делаете, потому что HTTP-адрес не поддерживает состояние.
Переменные сеанса решают эту проблему, сохраняя информацию о пользователе для использования на нескольких страницах (например, имя пользователя, любимый цвет и т.д.). По умолчанию переменные сеанса длятся до тех пор, пока пользователь не закроет обозреватель.
Так Переменные сеанса имеют сведения об одном пользователе и доступны для всех страниц в одном приложении.
Совет: Если требуется постоянное хранилище, может понадобиться сохранить данные в базе данных.
Запуск сеанса PHP
Сеанс запускается с session_start()
функцией.
Переменные сеанса задаются с глобальной переменной PHP: $ _сессион.
Теперь создадим новую страницу под названием "демо_сессион1. php". На этой странице мы начинаем новую сессию PHP и задаете некоторые переменные сеанса:
Пример
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
Примечание: session_start()
функция должна быть самой первой вещью в документе. Перед любыми тегами HTML.
Получение значений переменных сеанса PHP
Далее мы создадим еще одну страницу под названием "демо_сессион2. php". На этой странице мы будем получать доступ к информации о сеансе, которую мы установили на первой странице ("демо_сессион1. php").
Обратите внимание, что переменные сеанса не передаются по отдельности каждой новой странице, вместо этого они извлекаются из сеанса, открываемого в начале каждой страницы ( session_start()
).
Также обратите внимание, что все значения переменных сеанса хранятся в глобальной переменной $ _сессион:
Пример
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
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>
Как это работает? Как он узнал, что это я?
Большинство сеансов устанавливают на компьютере пользователя ключ пользователя, который выглядит примерно так: 765487кф34ерт8деде5а562е4ф3а7е12. Затем, когда сеанс открывается на другой странице, он сканирует компьютер на наличие ключа пользователя. Если совпадение, он обращается к этому сеансу, если нет, он запускает новый сеанс.
Изменение переменной сеанса PHP
Чтобы изменить переменную сеанса, просто перезаписать ее:
Пример
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Уничтожить сессию PHP
Чтобы удалить все глобальные переменные сеанса и уничтожить сеанс, используйте session_unset()
и session_destroy()
:
Пример
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>