Обнаружена активная php сессия wordpress как исправить ошибку

от admin

Обнаружена активная php сессия wordpress как исправить ошибку

  1. Мы воспользуемся событием init , с помощью которого можно запустить PHP-сессию . При первой инициализации WordPress мы добавляем действие, которое вызывает функцию:
  1. Далее создаем функцию start_session . Обратите внимание, что функция сначала проверяет, активна ли сессия, и только потом запускает новую сессию при помощи функции session_id :
  1. В WordPress может потребоваться очистить сессию при выходе пользователя из системы, либо при авторизации нового пользователя на сайте. Для вызова функции end_session() , которую мы создадим позже, будут использоваться хуки wp_logout и wp_login :
  1. Далее создаем функцию end_session :
  1. В файл functions.php нужно добавить следующий код:

PHP сессии для сайта плагин WordPress

Оптимизация сайта

Site Health : An active PHP session was detected

I’m new in WordPress development and I just created my first theme.

In my wp-admin, the "Site Health" tells me that a PHP session has been detected (critical error), here is the message :

A PHP session was created by a session_start() function call. This interferes with REST API and loopback requests. The session should be closed by session_write_close() before making any HTTP requests.

I need PHP’s $_SESSION for a theme script, and I added this to my functions.php file for sessions to be properly initialized:

If I delete these lines, the message disappears, but my PHP sessions don’t work anymore.

If I keep these lines, everything seems to be working properly but this message is worrying.

Does anyone have an idea to solve this problem while keeping the ability to use the $_SESSION ?

Обнаружена активная PHP сессия с вызовом функции session_start() сайта WP: Решение проблемы

Приветствую Вас, друзья! Столкнулся с такой проблемой, плагин Yoast SEO выдавал критическую ошибку «Обнаружена активная PHP сессия»:

Сессия PHP была создана вызовом функции session_start(). Это препятствует работе REST API и петлевых запросов. Сессия должна быть закрыта функцией session_write_close() перед выполнением любых HTTP-запросов.

Как-то руки не доходили добраться до этого, ошибка висела, особого внимания не обращал. Решил посмотреть как исправить, заглянул на некоторые сайты и увидел, что такая проблема не только у меня.

Нашёл какие-то рекомендации, заумные посты программистов, но решения не нашёл . Немного повозился, выявил причину и решение как исправить эту беду в моём случае на WordPress.

Пошаговые действия по исправлению функции session_start() на session_write_close() в WordPress

Сначала надо выявить причину, что влияет на появление ошибки, плагины или шаблон. Первым делом проверить установленные контактные формы путём их отключения, возможно на этом ваши поиски закончатся.

В моём случае начал проверять плагины:

  • Установил плагин «Health Check & Troubleshooting» для выявления неисправности. Он позволяет перейти в «настроечный режим» и отключать все плагины, тему, но при этом сайт будет работать для посетителей в нормальном режиме;
  • Переходите в настроечный режим и смело можно в нём работать, не опасаясь за исправную работу сайта в это время;
  • В результате манипуляций определил причину: Контактная форма «Contact Form by BestWebSoft», при его отключении проблема функции session_start() исчезала;
  • Установил «Contact Form 7», проверил: Проблемка закрыта.
Читать:
System32 logfiles srt srttrail txt windows 10 что делать

Критическую ошибку с функцией «session_start()» может показывать не только Yoast, но и другой плагин SEO, например, All in One SEO Pack. Во время проверки откройте окно со страницей критической ошибки, по мере включений-выключений плагинов для надёжности обновляйте, чтобы не пропустить виновника.

Вывод

Конфигурация моего сайта видимо не уживалась с контактной формой «Contact Form by BestWebSoft», возможно у вас будет причина в других установленных или в шаблоне.

Делитесь, какие причины выдавали вам проблему с функцией session_write_close(), удалось ли выявить и исправить проблему. Какими способами?

Обнаружена активная PHP сессия

Обнаружена активная PHP сессия
Производительность
Сессия PHP была создана вызовом функции session_start(). Это препятствует работе REST API и петлевых запросов. Сессия должна быть закрыта функцией session_write_close() перед выполнением любых HTTP-запросов.

Подскажите как решить.

Найти и убрать. Скорее всего, с палагином или темой, использующими session_*, придется расстаться.

https://ru.wordpress.org/plugins/health-check/
можете поставить этот плагин и воспользоваться режимом решения проблем, включая или выключая плагины по одному

Итак, установила плагин Health Check & Troubleshooting. Пробовала включать и отключать плагины, сейчас все плагины включены и этой проблемы нет. Т.е я понимаю что дело не в плагинах?
При выходе из режима решения проблем также ошибка не появляется.

Если деактивировать плагин Health Check & Troubleshooting проблема снова появляется.
Т.е. этот плагин просто должен быть постоянно активен? Он как то влияет на работу сайта?

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

Вне режиме решения проблем HeathCheck на работу сайта не влияет,
он просто заменяет и расширяет меню Инструменты-Здоровье сайта

Похожие статьи