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

PHP учебник

PHP HOME PHP Intro PHP Install PHP Syntax PHP Variables PHP Echo / Print PHP Data Types PHP Strings PHP Constants PHP Operators PHP If...Else...Elseif PHP Switch PHP While Loops PHP For Loops PHP Functions PHP Arrays PHP Sorting Arrays PHP Superglobals

PHP Forms

PHP Form Handling PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete

PHP Advanced

PHP Arrays Multi PHP Date and Time PHP Include PHP File Handling PHP File Open/Read PHP File Create/Write PHP File Upload PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP Error Handling PHP Exception

MySQL Database

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX RSS Reader AJAX Poll

PHP Examples


PHP Reference

PHP Overview PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones


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>