Что такое session_id () и session_name ()? Объясните, как они используются в следующем коде

?php function destroy_session_and_data() { session_start(); $_SESSION = array(); if (session_id() != "" || isset($_COOKIE[session_name()])) setcookie(session_name(), '', time() - 2592000, '/'); session_destroy(); } ?> 

Я понимаю, что приведенный выше код используется для завершения сеанса, но я не могу понять необходимость условия if и команды setcookie.

Также не могли бы вы объяснить, что именно является session_id () и session_name ().

Ясное объяснение было бы очень полезно. благодаря

Сеанс работает с установкой пары ключ / значение в файле cookie. Ключ указывает, что это идентификатор сеанса, а значение – идентификатор сеанса. по умолчанию для веб-сайтов на основе PHP ключ PHPSESSID, но его можно изменить.

Код проверяет, есть ли сеанс, переданный с запросом, либо путем запуска действительного сеанса (session_id () вернет идентификатор сеанса), либо просто есть PHPSESSID в cookie – и forse браузере, чтобы удалить cookie, установив дату истечения срока действия в мимо

Из руководства:

session_id() используется для получения или установки идентификатора сеанса для текущего сеанса.

session_name() возвращает имя текущего сеанса. Если задано имя, session_name() обновит имя сеанса и вернет имя старого сеанса.

id используется как первичный ключ (уникальный) для базы данных, в которой хранятся сеансы (по умолчанию только в файлах ondisk), name – это просто имя. Я не уверен, что name должно быть уникальным. Таким образом, в этом случае код проверяет, является ли session_id (получение данных из cookie браузера и поиск в локальном db) или если есть файл cookie с данным именем session_name. Если это так, он устанавливает время истечения срока действия файла cookie (клиентской стороны) до 43,2 минут назад и уничтожает сеанс (на стороне сервера).

чтобы узнать, в каком «сеансе» присутствует посетитель, установлен файл cookie. Пока этот файл cookie доступен, пользователь останется в том же сеансе. Чтобы завершить сеанс, его нужно удалить (это объясняет setcookie ().

session_id () и session_name () находятся в php manaul