PHP -сессии
Сеанс — это способ хранения информации (в переменных), которая будет использоваться на нескольких страницах.
В отличие от файлов cookie, информация не хранится на компьютере пользователя.
Что такое сеанс PHP?
Когда вы работаете с приложением, вы открываете его, вносите какие-то изменения, а затем закрываете. Это очень похоже на сессию. Компьютер знает, кто вы. Он знает, когда вы запускаете приложение и когда вы его заканчиваете. Но в Интернете есть одна проблема: веб-сервер не знает, кто вы и что вы делаете, потому что HTTP-адрес не поддерживает состояние.
Переменные сеанса решают эту проблему, сохраняя информацию о пользователе, которая будет использоваться на нескольких страницах (например, имя пользователя, любимый цвет и т. д.). По умолчанию переменные сеанса сохраняются до тех пор, пока пользователь не закроет браузер.
Так; Переменные сеанса содержат информацию об одном отдельном пользователе и доступны для всех страниц в одном приложении.
Совет: если вам нужно постоянное хранилище, вы можете хранить данные в базе данных .
Начать сеанс PHP
Сеанс запускается с помощью session_start()
функции.
Переменные сеанса задаются глобальной переменной PHP: $_SESSION.
Теперь давайте создадим новую страницу с именем «demo_session1.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
Затем мы создаем еще одну страницу с именем «demo_session2.php». На этой странице мы получим доступ к информации о сеансе, которую мы установили на первой странице («demo_session1.php»).
Обратите внимание, что переменные сеанса не передаются индивидуально на каждую новую страницу, вместо этого они извлекаются из сеанса, который мы открываем в начале каждой страницы ( session_start()
).
Также обратите внимание, что все значения переменных сеанса хранятся в глобальной переменной $_SESSION:
Пример
<?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>
Как это работает? Откуда оно знает, что это я?
В большинстве сеансов на компьютере пользователя устанавливается пользовательский ключ, который выглядит примерно так: 765487cf34ert8dede5a562e4f3a7e12. Затем, когда сеанс открывается на другой странице, он сканирует компьютер на наличие пользовательского ключа. Если есть совпадение, он обращается к этому сеансу, если нет, он начинает новый сеанс.
Изменить переменную сеанса 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>