Intereting Posts
Как я могу выйти из неактивных пользователей через 30 минут? Как получить список всех кешированных элементов по ключу в Laravel 5? Почему PHP не принимает команду с аргументом $ 1 Как получить тот же результат с помощью Node.js и PHP-mcrypt с использованием шифрования TripleDES? Возвращение переменной sql в PHP отправлять только полевые поля. если пустые, то не отправляйте по электронной почте. php для отправки по электронной почте Как предотвратить SQL-инъекцию? Вызов PHP-файла с использованием AJAX Joomla intro image как дополнительная ссылка Получить конечное значение многомерного массива Разница между <? Php echo $ session_id?> И <? = $ Session_id?> файлы, загруженные с устройства google drive usin picker, повреждены Как работает кнопка «Поделиться» Facebook при переполнении стека? PHPExcel – Как заменить текст с помощью preg_replace Изменение алфавитной сортировки атрибутов / вариаций на странице продукта в магазине Woocommerce

Уничтожение сеанса PHP

В разделе stackoverflow есть много страниц о том, как разобраться в сеансе. Поверьте мне, я читал их все, и я наткнулся на это: Почему моя сессия остается?

Мой вопрос прост, правда ли, что мне нужно сделать все ниже, чтобы правильно уничтожить сеанс?

$tmp = session_id(); session_destroy(); session_id($tmp); unset($tmp); 

Это единственная страница, которая предлагает такие экстремальные меры. Большинство страниц просто предлагают session_destroy(); ,

Просто уточнить, потому что, похоже, есть некоторая путаница, я ищу эффективный эффективный метод.

Заранее спасибо.

Новые ответы перестали поступать, поэтому я вникаю в то, что я узнал, основываясь на всех ответах. Это совокупность различных ответов. Надеюсь, это поможет другим. Ниже приведен наиболее эффективный метод, который на 100% эффективен для уничтожения сеанса:

 if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } $_SESSION = array(); $tmp = session_id(); session_id($tmp); unset($tmp); session_unset(); session_destroy(); session_write_close(); session_regenerate_id(True); // true indicates the need to delete the old session с if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } $_SESSION = array(); $tmp = session_id(); session_id($tmp); unset($tmp); session_unset(); session_destroy(); session_write_close(); session_regenerate_id(True); // true indicates the need to delete the old session 

Спасибо всем за их помощь, показывая мне, как это сделать. Это не было ничьим усилием. Я особенно хотел бы поблагодарить @Kerrek SB, @Uday @Dhruvisha. Если у вас есть больше предложений, не стесняйтесь добавлять комментарии, и я отредактирую свой ответ.

session_destroy () уничтожает все данные, связанные с текущим сеансом. Он не отменяет никаких глобальных переменных, связанных с сеансом, или не удаляет cookie сеанса. Чтобы снова использовать переменные сеанса, необходимо вызвать session_start ().

Чтобы вообще убить сеанс, как и для выхода из системы, идентификатор сеанса также должен быть отменен. Если для распространения идентификатора сеанса (поведение по умолчанию) используется куки-файл, необходимо удалить куки-файл сеанса. Для этого может использоваться setcookie ().

Пример Уничтожение сеанса с помощью $ _SESSION

 // Unset all of the session variables. $_SESSION = array(); // If it's desired to kill the session, also delete the session cookie. // Note: This will destroy the session, and not just the session data! if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // Finally, destroy the session. session_destroy(); ?> 

Подробнее см. Здесь .

 <?php session_start(); $s_id = session_id(); echo $s_id; session_destroy(); session_unset(); session_start(); session_regenerate_id(true); $s_id = session_id(); ?> 

Попробуй это . Это будет работать.